2015-09-18 4 views
-1

J'ai donc des champs de texte JSON avec des guillemets. Et quand j'essaye d'extraire la valeur du champ using le code suivant il me donne l'erreur si le champ de texte contient des citations dedans.Champ de texte JSON avec guillemets

filename="op.json" 

fp=open(filename, "r") 
wp=open("new.json", "w") 

json_object = json.load(fp) 

for tweet in json_object["ABC"]: 
     wp.write ("\" created at \": \"" + str(tweet["created_at"]) + "\"") 
     wp.write ("\" id \": \"" + str(tweet["id"]) + "\"") 

Il fonctionne très bien pour l'entrée "id": "This is the id"

Mais ne fonctionnera pas pour "id": This "is" the id"

+0

Où est la virgule dans les champs de texte que vous donnez comme exemple? –

+0

Il semble que vous ayez des guillemets (',') avec des guillemets ('' ''), parfois appelés "guillemets" – jwodder

+2

Bien, "id": Ce "est" l'id "' n'est pas valide JSON. Pouvez-vous poster un exemple du JSON que vous avez actuellement? Si le JSON n'est pas valide, alors vous devez corriger tout ce qui le génère. –

Répondre

0

Votre deuxième exemple n'est pas JSON correcte. Si vous avez des guillemets doubles, une chaîne, ils doivent être échappé avec Doseret:

{ "ABC": [ 
    { "id1": "This is the id" }, 
    { "id2": "This \"is\" the id" } 
    ] 
} 

Vous devez corriger tout programme crée le fichier JSON il crée le format approprié. Je suppose qu'il n'utilise pas une fonction de bibliothèque, donc il ne gère pas les cas spéciaux comme celui-ci. Utilisez une bibliothèque JSON et cela devrait fonctionner correctement.