2017-03-04 10 views
0

Ich benutze das JSON-Modul, um eine Reihe von Wörterbüchern in JSON zu konvertieren, aber ich bin nicht sicher, warum beim Dumping zu JSON die Strings, die ein einzelnes Zitat enthalten (zB: Mein Vater Auto) sind zu entkommen Vaters Auto). Wenn ich einen Online-Validator einchecke, sagt er, dass das Format falsch ist. Warum Dumps entgehen ihnen, wenn es nicht korrekt ist?Einfache Anführungszeichen JSON

Ich habe versucht, die Zeichenfolgen ersetzen zu ersetzen, aber es handelt nicht von ihnen. Wäre das eine gültige Lösung? Warum funktioniert das folgende nicht abgeschnitten

formatted_json = json.dumps(OrderedDict([("nodes", json_graph['nodes']), ("links", json_graph['links'])])).replace('\'',"'") 

Vielen Dank!

+0

können Sie eine [mcve] bereitstellen. Weil json _not_ hier nicht einfache Anführungszeichen entnimmt (da das Angeben mit doppelten Anführungszeichen erfolgt) –

+0

'' '' '' '' ''' '' '' 'buchstabieren beide den genau gleichen Zeichenfolgenwert *. Sie haben einfache Anführungszeichen durch einfache Anführungszeichen ersetzt. Sie suchen wahrscheinlich eine Ausgabe 'repr()' für eine Zeichenfolge, die sowohl einfache als auch doppelte Anführungszeichen enthält. Daher gibt Python Ihnen einen * Zeichenfolgenliteralwert *, der kopiert und eingefügt werden kann, um diesen Wert zu reproduzieren. und in einem Zeichenfolgenliteral mit beiden Zeichen "" und "" müssen Sie dem einen oder dem anderen entgehen, damit das funktioniert. Das bedeutet nicht, dass der tatsächliche Wert in ihnen escape hat. –

Antwort

4

Wahrscheinlich sehen Sie die Wertdarstellung von Python Interpreter. Wenn Sie den Wert drucken oder in einer Datei speichern, wird das richtige Verhalten angezeigt.

>>> import json 
>>> json.dumps("a'b") 
'"a\'b"' 
>>> print json.dumps("a'b") 
"a'b" 
Verwandte Themen