【问题标题】:facing json decode error even on a hard coded small dictionary [closed]即使在硬编码的小字典上也面临json解码错误[关闭]
【发布时间】:2020-11-01 13:55:14
【问题描述】:

在用 python 编写的字典和外部 json 文件上面临 json 解码错误。

import json

x = '{ "name:"John", "age":30, "city":"New york"}'
y = json.loads(x)
print(y ["age"])

json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 10 (char 9)

【问题讨论】:

  • :应该在 " 符号(名称键)之后
  • 仔细看看输入字符串的第 9 个字符:这个引号应该在那里吗?

标签: python json dictionary


【解决方案1】:

问题在于你的字符串x,你忘记了"

import json

wrong_x = '{ "name:"John", "age":30, "city":"New york"}'
good_x  = '{ "name":"John", "age":30, "city":"New york"}'

y = json.loads(good_x)

这会奏效。如果字符串化字典 x 被硬编码超出您的控制范围,那么您将不得不为此编写一个修复函数。

【讨论】:

  • 谢谢。我这边的愚蠢错误,但在 json 文件上面临同样的问题。示例 json 文件 - [ { "Sr. No.": "1", "Symbol": "ADANIPORTS", "ISIN": "INE742F01042", "Security Name": "Adani Ports and Special Economic Zone Limited" ,“总体允许数量。跨所有段”:“148033049”,“Memberwise 允许数量”:“N.A”,“最小理发 %”:“VAR 率”}],我尝试在 json 中使用分隔符、解码参数。加载函数
  • 你得到的错误是一样的吗? json 列表的第一个元素 ("Sr. No.") 暗示了编码问题。但这确实有助于在真实数据上发现真正的错误。
  • fixed "Sr,json的第一个元素是-- [ { "Sr.编号”:1,“符号”:“ADANIPORTS”,“ISIN”:“INE742F01042”,“证券名称”:“Adani Ports and Special Economic Zone Limited”,“总许可数量”。 Across All Segments": 148033049, "Memberwise Permitted Qty": "N.A", "Minimum Haircut %": "VAR rate" } -- 仍然出现同样的错误
  • 哪个错误?您问题中的错误消息非常具体地说明了问题的位置。你真正的错误信息指向哪里?
  • 它现在已经修复了,我将文件分配给一个变量并使用 json.load 而不是加载打开它,它以某种方式工作,不知道为什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多