2017-03-04 66 views
0

我正在使用json模块将一系列字典转换为json,但我不确定为什么当将包含单引号的字符串(例如:我父亲的汽车)转储到json时转义为(My父亲的车)。当我检查在线验证器时,它说格式错误。为什么垃圾桶在它不正确时逃脱它们?转义单引号JSON

我试图用replace来替换字符串,但是它不会对它们起作用。这将是一个有效的解决方案吗?为什么不能正常工作以下内容被删除

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

谢谢!

+0

你能否提供[mcve]。由于json在这里不是转义简单引号(因为引号是用双引号完成的) –

+0

'''''和'“'”'拼写*完全相同的字符串值*。你用单引号替换单引号。您可能正在为包含单引号和双引号的字符串查找'repr()'输出,因此Python会为您提供*字符串字面值*,该值可被复制并粘贴以重现该值。并且在一个带有字符串文字和''''和'''字符的字符串中,你必须逃脱一个或另一个才能正常工作。这并不意味着实际的值已经在它们之间转义了。 –

回答

4

您可能会看到python解释器的值表示。如果您打印该值或将其存储在文件中,则会看到正确的行为。

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