0

例如,如果您有以下 JSON 对象(删除 python 的分号):

values = {
    a: 1,
    b: {
        c: 2,
        d: { e: 3 }
    },
    f: 4,
    g: 5   
};

如果您尝试values在 JS 中打印,它将正常工作。但是在 Python 中它会返回一个错误NameError: name 'a' is not defined,这意味着这些变量没有定义,需要设置为字符串。

假设我需要将它加载到 python 中,而不需要手动将这些未定义的变量转换为字符串。我试过json.loads了,但没有用。还有其他内置函数可以完成这项工作吗?似乎在 JS 中,如果它们没有被定义,它会自动将它们视为字符串,或者只是忽略它们是否被定义的事实?

有什么解释吗?

4

1 回答 1

3

我试过 json.loads 但它没有用。

那是因为你引用的不是JSON,它是一个 JavaScript 对象初始化器被分配给某个东西(可能是一个变量)。

这是等效的 JSON:

{
    "a": 1,
    "b": {
        "c": 2,
        "d": { "e": 3 }
    },
    "f": 4,
    "g": 5   
}

注意事项:

  • 没有变量,没有=
  • 顶层必须是一个对象(例如,{...})或一个数组(例如,[...])。
  • 属性名称(键)必须用双引号引起来
  • 字符串必须使用双引号(您的示例中没有任何字符串,但如果有,单引号 - 例如 - 将无效)
  • ;最后没有
于 2013-09-18T10:17:07.793 回答