2016-09-27 93 views
32

在Python中,json.load()json.loads()有什么区别?Python中的json.load()和json.loads()函数有什么区别?

我想的是,负载()函数必须以文件对象(我需要这样使用上下文管理器),而载荷()函数取文件路径作为一个字符串被使用。这有点令人困惑。

这封信 “小号” 在json.loads()代表

非常感谢您的回答!

+0

您已经阅读了这些方法的文档? – JJJ

+0

*'json.loads(s,*)' - 反序列化'''包含JSON文档的'str','bytes'或'bytearray'实例* - https://docs.python.org/3.6/ library/json.html – deceze

回答

37

是的,它代表字符串。 json.loads函数不采用文件路径,而是将文件内容视为字符串。看看https://docs.python.org/2/library/json.html的文档!

+3

链接的文章指向错误的python版本。问题被标记为2.7。 – RvdK

+1

谢谢,修复它。 – Gijs

14

文档是很清楚的:https://docs.python.org/2/library/json.html

json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]]) 

反序列化FP(一个.read() - 支撑包含 JSON文档类文件对象)使用该转换表Python对象。

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]]) 

反序列化S(一个STR或含有JSON文档的unicode实例) 使用该转换表Python对象。

所以load是一个文件,loadsstring

相关问题