【问题标题】:Error: json.load in python错误:python 中的 json.load
【发布时间】:2012-04-30 00:11:52
【问题描述】:

为什么这是正确

  import json
  json.loads('{"A":2}')

但这是错误

  json.loads('{"A":2,}')

  json.loads("['A':2]")

【问题讨论】:

  • 因为{"A":2,}(尾随逗号)和['A':2}[],{} 不匹配,键不在双引号中)不是有效的 JSON。见json.orgjsonlint.com

标签: python json


【解决方案1】:

JSON 是 JavaScript 的子集。这意味着有效的 JavaScript 不一定是有效的 JSON。

  • {"A":2,} 是有效的 JS(旧 IE 版本除外),但不是有效的 JSON
  • ['A':2} 甚至不是有效的 JS,因为大括号不匹配。如果它们匹配,它仍然是无效的 JSON,因为 JSON 总是使用 " 而从不使用 ' 来引用字符串。

请参阅 http://json.org/ 了解 JSON 规范。

【讨论】:

  • 哎呀,我的意思是json.loads("['A':2]")
  • @mehRad:仍然错误,因为 (a) 键不在双引号中,并且 (b) : 在那里无效。定义一个对象:{k:v, k:v, ...} 或一个数组 [v, v, ...]。这就是 JSON 的定义方式,您只需要记住它。因此:json.org
【解决方案2】:

因为最后两个选项不是有效的json

  • 最后一个元素后面不能有逗号
  • [ 应匹配 ](数组),{ 应匹配 }(对象)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2018-01-16
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多