首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中加载json时保留双引号

如何在python中加载json时保留双引号
EN

Stack Overflow用户
提问于 2016-11-15 14:57:57
回答 2查看 2.6K关注 0票数 1

使用YAML转储JSON,

代码语言:javascript
运行
复制
c= {"a":1} 
d = yaml.dump(c)

使用YAML加载JSON

代码语言:javascript
运行
复制
yaml.load(d) 
{'a': 1} # double quotes is lost

如何确保load的输出有双引号?

注意:我也尝试过json和simplejson,它们的行为方式都是一样的。

EN

回答 2

Stack Overflow用户

发布于 2016-11-15 15:23:22

对于Python,单引号和双引号没有区别。

如果您需要JSON字符串形式的响应,那么使用标准的json模块-它将创建具有正确格式的JSON字符串-带有双引号。

代码语言:javascript
运行
复制
>>> import json
>>> json.dumps({'a': 1})
'{"a": 1}'

一些框架或模块(如requests)具有内置函数来发送格式正确的JSON (它们可能在后台使用标准的json模块),因此不必自己完成。

票数 3
EN

Stack Overflow用户

发布于 2016-11-15 21:39:50

代码语言:javascript
运行
复制
c = {"a":1} 
d = yaml.dump(c)

不会转储JSON,它会将python dict转储为YAML。使用json.dumps()dict生成一个JSON字符串,然后选择性地加载/转储为YAML,并通过在加载时指定preserver_quotes来保留双引号:

代码语言:javascript
运行
复制
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)

这将打印:

代码语言:javascript
运行
复制
{"a": 1}
---------
{"a": 3}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40603831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档