【问题标题】:Converting JavaScript JSON data to Python JSON将 JavaScript JSON 数据转换为 Python JSON
【发布时间】:2014-08-23 06:06:07
【问题描述】:

我有 JavaScript JSON 数据:

var data = '{a: 10, b: 20}'

我想将其转换为 Python JSON。我该怎么办?

我的情况: 我有从网站读取文本的脚本。网站在 javascript 变量中有数据,如我在示例中所示。我提取了变量部分'{a: 10, b: 20}'。但是对于python来说,它仍然是字符串格式。我需要将该数据转换为 Python JSON,以便进行进一步的工作。

如何将 JavaScript JSON 转换为 Python JSON?

【问题讨论】:

  • 首先,这甚至不是有效的 JSON。其次,“JavaScript JSON”和“Python JSON”没有区别,这是使用相同格式的重点。只需在 Python 中使用 json.loads 即可将 JSON 字符串解码为有用的格式。
  • 如果data 被格式化为{a: 10, b: 20},那么它很可能代表一个JavaScript 对象文字/初始化器。或类似的自定义语法。但是,不涉及 JSON。尽管它们有关系,尤其是在名称和共享语法方面,但 JSON 和 JavaScript 确实仍然分开存在。要解析字符串,您可能需要 Python 的 JavaScript 解析器。

标签: javascript python json


【解决方案1】:

Python JSON 有点用词不当,因为 JSON(如 JavaScript 对象表示法)是 JavaScript 的一个子集,只是描述了一个 JavaScript 对象。它是一种交换格式,不依赖于您使用的语言。

您可以使用json 模块在 Python 中解析 JSON,并返回等效的 Python 对象。

【讨论】:

    【解决方案2】:

    显然,RSON 等一些库可以帮助您。

    根据that answer

    【讨论】:

      【解决方案3】:

      var data = '{a: 10, b: 20}' 不是有效的 JSON。它是有效的 JavaScript

      如果你这样做

      var data = JSON.stringify({ a: 10, b: 20 });
      

      你会发现它实际上变成了

      var data = '{ "a": 10, "b": 20 }'
      

      ab 变量周围的额外 " 是构成此有效 JSON 的部分。混淆来自于 JavaScript 比 JSON 更宽容的事实。

      别难过。你不会是唯一一个会落入这个陷阱的人。

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-29
        • 2010-11-11
        相关资源
        最近更新 更多