【问题标题】:Need explanation difference between json and dict in Python需要解释Python中json和dict之间的区别
【发布时间】:2016-12-17 13:03:40
【问题描述】:

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

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

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

我想把它当作一本字典来工作。为此,我使用.json() 函数。为什么res.json()['city']可以获取数据,req.json().city不能获取数据?

【问题讨论】:

  • .json() 返回一个字典。它不是特殊的对象。如果字典让.city 工作,它会对数字键做什么?当你说dictionary.copy时,你是问字典的copy方法,还是dictionary['copy']
  • Python 不是 Javascript。在 Javascript 中,thing.x 被定义为thing["x"] 的简写;在 Python 中,这是两个完全不同的东西。

标签: python json dictionary implicit explicit


【解决方案1】:

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

注意:一切都基于我目前的知识,如果有任何地方出现问题,请原谅我,并请纠正我以使社区继续发展

我的回答实际上包含关于它们如何工作以及为什么工作的基础知识?所以,如果你需要,那么这里就是—— 首先有两种 JSON:

  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脚本对象就相当于字典。这就是我们将字符串转换为dict的原因。 其他语言的字典类型数据结构必须具有不同的名称,然后它将字符串转换为那些类型的数据结构。 在python中能够从字符串转换为json和json到字符串。该类必须具有 json 序列化程序才能知道转换什么以及如何转换。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      在 Python 中,无法使用 my_dict.key 语法访问字典值。这是为dict 类的属性保留的,例如dict.getdict.update。字典值只能通过 my_dict[key] 语法访问。

      【讨论】:

      • 谢谢,现在更清楚了。我误解了,因为在 Python 字典中数据类型是 Object 的子类型,并且认为我可以以同样的方式使用它。
      猜你喜欢
      • 2016-03-26
      • 2014-08-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多