【发布时间】:2015-12-30 21:50:21
【问题描述】:
json.dumps 和 json.load 有什么区别?
据我了解,一个将 JSON 加载到字典中,另一个加载到对象中。
【问题讨论】:
json.dumps 和 json.load 有什么区别?
据我了解,一个将 JSON 加载到字典中,另一个加载到对象中。
【问题讨论】:
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())
【讨论】:
str 以外的类型”的意义上使用object。像'"foo"' 这样的字符串被解码为Python str 对象'foo';像"[1,2,3]" 这样的字符串被解码为Python 列表[1,2,3] 等
dumps()- 编码为 JSON 对象 dump()- 编码字符串写入文件 loads()- 解码 JSON 字符串 load()- 读取 JSON 文件时解码
json 加载 -> 从表示 json 对象的字符串中返回一个对象。
json dumps -> 从一个对象返回一个表示 json 对象的字符串。
加载和转储 -> 从文件读取/写入文件而不是字符串
【讨论】: