我很好奇深入了解Python中的JSON和Dict。
我从服务器收到的JSON响应如下:
`{"city":"Mississauga","country":"Canada","countryCode":"CA"}`
我想将其作为字典来使用。 为此,我使用.json()
函数。 为什么可以通过res.json()['city']
获取数据,但无法使用req.json().city
?
我很好奇深入了解Python中的JSON和Dict。
我从服务器收到的JSON响应如下:
`{"city":"Mississauga","country":"Canada","countryCode":"CA"}`
我想将其作为字典来使用。 为此,我使用.json()
函数。 为什么可以通过res.json()['city']
获取数据,但无法使用req.json().city
?
my_dict.key
语法来访问字典值。这个语法是保留给dict
类的属性使用的,比如dict.get
和dict.update
。只有通过my_dict[key]
语法才能访问字典值。我不确定是否需要我的帮助,但我还是会尝试。
注意:一切基于我的当前知识,如果有错误请谅解并纠正我以便社区不断发展
我的回答实际上包含了它们如何工作以及为什么的基础知识。所以如果您需要的话,在此介绍:
首先,有两种类型的JSON:
我们知道JSON数据与Python中的字典非常相似。这意味着它们基于哈希映射(hash maps)工作。 但是在将json数据通过网络传输到其他地方之前,我们要先将其转换为字符串。
这样看起来就像这样:json_data = {"data":"This will original"}
转换后会变成这样:'{"data":"This will original"}'
您会注意到,json_data已经被转换为字符串,并且现在被写在引号内。您可以通过 type(json_data)
在Python中检查数据类型。
之所以这样做,是因为字符串的成本比实际对象的成本要低得多,而且这样做更容易。所以当这些数据传输到其他语言(例如Python)时,它们将接收到JSON字符串。现在,他们必须解析这些对象才能使用其中的数据,否则它们只是简单的字符串。
所以现在您需要将其转换回JSON数据。在Python中,JSON数据或JavaScript对象与字典等效。这就是为什么我们将字符串转换为字典。
其他语言可能具有不同名称的数据结构类型,然后将字符串转换为这些类型的数据结构。
在Python中,要能够从字符串转换为JSON和JSON转换为字符串。该类必须具有JSON序列化程序以了解如何进行转换。
希望这有所帮助,即使只有一点。如果有任何疑问,我很乐意回答。
JSON是JavaScript对象表示法的缩写,它是一种表示数据的规则,仅仅是一种格式 - 定义了如何以文本格式表示数据。
Python字典是Python中表示哈希表数据结构的类,它恰好看起来像JSON;但它比JSON更加强大。
注意,它们的结构基本相同。
您可以在这里了解更多信息。
.json()
返回一个字典。它不是一个特殊的对象。如果一个字典让.city
起作用,那么对于数字键会发生什么呢?当你说“dictionary.copy”时,是在询问字典的“copy”方法还是“dictionary ['copy']”? - zondothing.x
被定义为thing["x"]
的简写;而在Python中,它们是完全不同的东西。 - user2357112