json.JSONDecoder().decode() 和 json.loads() 有什么区别?

7

我正在使用urllib2来获取一个URL的HTML内容,然后使用正则表达式从中提取所需的JSON。我希望获得通常的“字典套字典”Python对象,并且以下两种方法都可以:

my_json #a correctly formatted json string
json_dict1 = json.JSONDecoder().decode(my_json)
json_dict2 = json.loads(my_json)

什么是它们的区别,除了我的情况外,在什么情况下哪个更好?
1个回答

9
json.loads()本质上创建了一个json.JSONDecoder()实例,并在其上调用decode。因此,你的第一行与第二行完全相同。请参见json.loads()源代码
该模块为您提供了灵活性;一个简单的函数API或一个完整的OO API,如果需要可以进行子类化。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接