J'utilise python pour analyser des fichiers YAML.python, yaml comment analyser une chaîne contenant une apostrophe
L'un des documents YAML contiennent un dictionnaire, comme suit:
scrapers:
results: //article[@class='story ']
Cela provoque apparemment un problème parce que le dernier est précédé d'une apostrophe un espace. Si je pouvais supprimer les espaces, cela résoudrait le problème. Cependant, puisque c'est un xpath je ne peux pas. Est-ce que quelqu'un sait comment je pourrais échapper à cette séquence?
Je regardais dans d'autres SO question, mais comme solution envelopper la chaîne dans "", ou en utilisant
scrapers:
results: //article[@class='story ']
ou
scrapers:>
results: //article[@class='story ']
ou
scrapers:
results: //article[@class='story '']
ne fonctionne pas.
EDIT: Je suis en train d'ouvrir un fichier contenant l'expression ci-dessus:
import yaml
with open('/home/depot/wintergreen/yaml/scrapers.yml', 'r') as f:
scrapers = yaml.load(f)
Cependant, je reçois l'erreur: ScannerError: valeurs de mappage ne sont pas autorisés ici
montrant les espaces blancs après story
. J'ai essayé une suggestion proposée par un répondeur ci-dessous, à savoir créer l'expression yaml à partir d'un dictionnaire python. Cela marche. Je sauvegarde le yaml dans un fichier et le recharge à nouveau. Cependant, lorsque je crée la yaml en tapant les caractères exactement les mêmes, il ne fonctionne pas ...
EDIT2: Je pense que le problème vient du fait que j'ai créé le fichier YAML sur une machine de fenêtre et uploadé il sur un serveur UNIX.
Où est le code qui a un problème avec cela? Quelle bibliothèque utilisez-vous? Ou essayez-vous d'analyser YAML avec des expressions régulières? (Vous ne devriez pas) – Anthon