需要解释Python中json和dict的区别

问题描述 投票:0回答:5

我只是想更深入地了解Python中的JSON和Dict。

我有来自服务器的 JSON 响应,如下所示:

`{"city":"Mississauga","country":"Canada","countryCode":"CA"}`

我想把它当作一本字典来使用。为此,我使用

.json()
函数。为什么我用
res.json()['city']
可以获取数据,而用
req.json().city
却不能获取数据?

python json dictionary implicit explicit
5个回答
14
投票

在 Python 中,无法使用

my_dict.key
语法访问字典值。这是为
dict
类的属性保留的,例如
dict.get
dict.update
。字典值只能通过
my_dict[key]
语法访问。


3
投票

我不知道这里是否需要我,但我仍然会尝试。

注意: 一切都是基于我目前的知识,所以如果有任何地方出错,请原谅我,并请纠正我,以便社区不断发展

我的答案实际上包含了它们如何工作以及为什么工作的基础知识?所以如果你需要的话,那就是- 首先,JSON 有 2 种类型:

  1. json数据
  2. json 字符串

我们知道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 序列化器才能知道转换什么以及如何转换。

希望这会有所帮助,即使很少。如果有任何疑问,我很乐意回答。


2
投票

JSON 代表JS 对象表示法。所以它是一种符号、一种格式——只是定义如何以文本格式表示数据的一组规则。
Python Dictionary 是 Python 中表示哈希表数据结构的类。它只是恰好看起来像 JSON;远不止于此。
注意结构几乎是相同
您可以查看更多这里


0
投票

JSON 和字典之间的一些重要区别如下:

  • JSON 中的键只能是字符串,而 字典可以是任何可哈希对象。
  • 在 JSON 中,键是按顺序排列的,并且可以在以下位置重复: 就像在字典中一样,键不能重复并且必须是 独特。

-1
投票

来自documentation

转换表显示了 JSON 是如何映射到 Python 的。 这个其他转换表显示了Python字典如何映射到JSON。

© www.soinside.com 2019 - 2024. All rights reserved.