我只是想更深入地了解Python中的JSON和Dict。
我有来自服务器的 JSON 响应,如下所示:
`{"city":"Mississauga","country":"Canada","countryCode":"CA"}`
我想把它当作一本字典来使用。为此,我使用
.json()
函数。为什么我用res.json()['city']
可以获取数据,而用req.json().city
却不能获取数据?
在 Python 中,无法使用
my_dict.key
语法访问字典值。这是为 dict
类的属性保留的,例如 dict.get
和 dict.update
。字典值只能通过 my_dict[key]
语法访问。
我不知道这里是否需要我,但我仍然会尝试。
注意: 一切都是基于我目前的知识,所以如果有任何地方出错,请原谅我,并请纠正我,以便社区不断发展
我的答案实际上包含了它们如何工作以及为什么工作的基础知识?所以如果你需要的话,那就是- 首先,JSON 有 2 种类型:
我们知道json数据就像Python中的字典一样。这意味着它们在哈希映射上工作。 但我们在通过网络将 json 数据传输到其他地方之前将其转换为字符串。
所以它看起来像这样:
json_data = {"data":"This will original"}
转换后,它看起来像这样:
'{"data":"This will original"}'
您会注意到 json_data 已转换为字符串,并且现在被写入引号内。 您还可以通过
type(json_data)
检查python中的数据类型。
我们这样做的原因是因为字符串的成本比实际对象的成本要低得多。而且这更容易做到。
所以现在当这些数据被传输到其他语言(比如 python)时,他们将收到一个 json 字符串。现在他们必须将这些解析为对象才能使用其中的数据。否则它们只是简单的字符串。
所以现在你需要将其转换回 json 数据。而在python中json数据或者java脚本对象就相当于字典。这就是我们将字符串转换为字典的原因。
其他语言的字典类型数据结构必须有不同的名称,然后它将字符串转换为这些类型的数据结构。
在 python 中能够从字符串转换为 json 以及 json 到字符串。该类必须具有 json 序列化器才能知道转换什么以及如何转换。
希望这会有所帮助,即使很少。如果有任何疑问,我很乐意回答。
JSON 代表JS 对象表示法。所以它是一种符号、一种格式——只是定义如何以文本格式表示数据的一组规则。
Python Dictionary 是 Python 中表示哈希表数据结构的类。它只是恰好看起来像 JSON;远不止于此。
注意结构几乎是相同。
您可以查看更多这里。
JSON 和字典之间的一些重要区别如下: