json.dumps 和 json.load 有啥区别? [关闭]
Posted
技术标签:
【中文标题】json.dumps 和 json.load 有啥区别? [关闭]【英文标题】:What is the difference between json.dumps and json.load? [closed]json.dumps 和 json.load 有什么区别? [关闭] 【发布时间】:2015-12-30 21:50:21 【问题描述】:json.dumps
和 json.load
有什么区别?
据我了解,一个将 JSON 加载到字典中,另一个加载到对象中。
【问题讨论】:
【参考方案1】:dumps
接受一个对象并生成一个字符串:
>>> a = 'foo': 3
>>> json.dumps(a)
'"foo": 3'
load
会获取一个类似文件的对象,从该对象读取数据,然后使用该字符串创建一个对象:
with open('file.json') as fh:
a = json.load(fh)
注意dump
和load
在文件和对象之间转换,而dumps
和loads
在字符串 和对象之间转换。您可以将 s
-less 函数视为 s
函数的包装器:
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
【讨论】:
这对我的理解很有帮助。我仍然有点困惑,因为我认为一切都是 Python 中的对象。字符串本身不会是一个对象吗?那你怎么能在两者之间转换呢?抱歉这个愚蠢的问题。 我在“str
以外的类型”的意义上使用object
。像'"foo"'
这样的字符串被解码为Python str
对象'foo'
;像"[1,2,3]"
这样的字符串被解码为Python 列表[1,2,3]
等
dumps()
- 编码为 JSON 对象 dump()
- 编码字符串写入文件 loads()
- 解码 JSON 字符串 load()
- 读取 JSON 文件时解码【参考方案2】:
json 加载 -> 从表示 json 对象的字符串中返回一个对象。
json dumps -> 从一个对象返回一个表示 json 对象的字符串。
加载和转储 -> 从文件读取/写入文件而不是字符串
【讨论】:
> json dumps -> 从字典中返回一个表示 json 对象的字符串。这很接近,但它不一定是你传递给 json.dumps() 的字典。您可以传递一个列表、一个字符串或一个布尔值..以上是关于json.dumps 和 json.load 有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分
Python中json文件处理的四个函数json.dumps()json.loads()json.dump()和json.load()的区分
python中json.dumps()和json.dump() 以及 json.loads()和json.load()的区分
python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分
python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分