【发布时间】:2019-05-04 16:28:51
【问题描述】:
我有一个关于普通 Python 字典对象和作为 json.loads(str) 的输出返回的内容之间的区别的问题。根据检查两个对象的 type() ,它说 dict.但是如果 json.load() 实际上返回一个普通的字典或字典格式的 json 对象,我想确认这一点。 我的代码如下:
import json
my_dict={'key1': 'val1', 'key2': 'val2'}
my_json_string = json.dumps(my_dict)
resp_json=json.loads(my_json_string)
print(type(my_dict))
print(type(resp_json))
输出说:两者都使用类'dict'
但是如前所述,我想确认两者是否完全相同,因为我需要发回一个 JSON 响应,如果两者完全相同,首先使用 json.dumps 将其转换为字符串是没有意义的( ) 然后再次对其执行 json.loads() 。我不妨返回我创建的字典对象 my_dict。希望我的问题很清楚。
【问题讨论】:
-
print只显示类型的字符串表示,我猜这 可能 会产生误导。试试type(resp_json) == dict,你会发现它实际上是 thatdict类型。 -
都是同一个字典
-
type(resp_json) == dict 返回 True
-
如果您的字典是正确的响应,您为什么不直接返回它呢?它们不是“完全相同的东西”(
resp_json is my_dict返回False),但我不明白为什么这很重要。 -
没有“字典格式的 json 对象”之类的东西。
json.loads()接收一个字符串,如果它是一个正确的 json 对象的表示,它会在 python 字典中返回它的内容,因为它们是相似/兼容的类型。
标签: python json dictionary