2016-09-27 23 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

相關問題