You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用json.loads解析JSON文件触发JSONDecodeError,求解决方案

解决json.loads()抛出JSONDecodeError的问题

嘿,你遇到的问题完全是因为JSON文件里有好几处语法错误,导致解析器没法正确识别。咱们一步步来搞定:

你的JSON里的问题:

  • 开头多了一个多余的左大括号{,整个数据集只需要用一对大括号包裹就行
  • Transaction_2里的Name值写成了"Landver,,少了一个闭合的双引号,得改成"Landver"
  • 整体结构错了:每个Transaction_x应该是外层对象里的键值对,而不是一个个独立的对象直接用逗号隔开。正确的结构应该是外层一个大对象,里面包含所有交易条目作为它的属性

修正后的JSON内容

{
  "Transaction_1": {"Name":"Magnolia","Location":"Ayilon male","Amount":289,"Date":"5/5/18"},
  "Transaction_2": {"Name":"Landver","Location":"Cinima-city Ramat-hashron","Amount":15,"Date":"15/5/18"},
  "Transaction_3": {"Name":"Superfarm","Location":"Shivat-hacochvim male","Amount":199,"Date":"7/5/18"},
  "Transaction_4": {"Name":"Printing solutions","Location":"Afeka tel-aviv","Amount":16,"Date":"25/5/18"}
}

你的Python代码(小优化版)

你的原始代码本身没问题,只要JSON修正后就能正常运行,不过用with语句来读取文件是更好的做法——它会自动帮你关闭文件,避免资源浪费:

import json

Data_to_python = {}

# 用with语句安全处理文件
with open('Data_for_python.txt','r') as Bank_Data_note:
    Bank_Data_str = Bank_Data_note.read()
    print(Bank_Data_str)
    Data_to_python = json.loads(Bank_Data_str)
    print(Data_to_python)

改完之后,json.loads()就能正常解析你的数据了。以后再遇到类似问题,记得检查所有双引号是否闭合、对象/数组的嵌套结构是否正确,有没有多余或者缺失的括号。

内容的提问来源于stack exchange,提问作者Sarel Amrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:07:26