使用YAML转储JSON,
c= {"a":1} 
d = yaml.dump(c)使用YAML加载JSON
yaml.load(d) 
{'a': 1} # double quotes is lost如何确保load的输出有双引号?
注意:我也尝试过json和simplejson,它们的行为方式都是一样的。
发布于 2016-11-15 15:23:22
对于Python,单引号和双引号没有区别。
如果您需要JSON字符串形式的响应,那么使用标准的json模块-它将创建具有正确格式的JSON字符串-带有双引号。
>>> import json
>>> json.dumps({'a': 1})
'{"a": 1}'一些框架或模块(如requests)具有内置函数来发送格式正确的JSON (它们可能在后台使用标准的json模块),因此不必自己完成。
发布于 2016-11-15 21:39:50
这
c = {"a":1} 
d = yaml.dump(c)不会转储JSON,它会将python dict转储为YAML。使用json.dumps()从dict生成一个JSON字符串,然后选择性地加载/转储为YAML,并通过在加载时指定preserver_quotes来保留双引号:
import sys
import json
import ruamel.yaml
c= {"a":1}
json_string = json.dumps(c)
print(json_string)
print('---------')
data = ruamel.yaml.round_trip_load(json_string, preserve_quotes=True)
data['a'] = 3
ruamel.yaml.round_trip_dump(data, sys.stdout)这将打印:
{"a": 1}
---------
{"a": 3}https://stackoverflow.com/questions/40603831
复制相似问题