python - json:期望值:第 1 行第 1 列(字符 0)
问题描述
我有一个 json 文件,我尝试像这样加载:
import json
data = json.loads('test.json')
但它崩溃了:
Traceback (most recent call last):
File "XXXXXXX.py", line 61, in <module>
data = json.loads('test.json')
File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
使用 vi 打开时,该行看起来没问题:
{"922": {"ticket": {"problem": [{"id": ...
有任何想法吗?
解决方案
json.loads
应该接受一个 json 字符串而不是文件名。在您的情况下,您需要json.load
打开文件句柄
with open('test.json', 'r') as f:
data = json.load(f)
在此处阅读文档:https ://docs.python.org/3.8/library/json.html#json.loads
推荐阅读
- javascript - 将 github 文件数据渲染到 div
- asp.net-core - Microsoft.AspNetCore.Components.Forms.InputRadioGroup` 不支持类型 xxx
- flutter - 将具有每日小时数的垂直列表与 Flutter 中的每周列表索引相关联
- javascript - Framework7 + Vue + Firebase:打开一个显示数据库动态信息的单独页面?
- javascript - 将 Promise 函数重写为异步函数
- c++ - C ++多重继承增加了类的大小?
- prolog - 是否有不需要类型系统的更高阶 Prolog?
- node.js - 如何在 NodeJS 的查询参数中传递时间戳(Express + Mongoose)
- amazon-web-services - 无法从 locl 机器通过 Git-bsh 克隆 AWS-Code Commit Repo
- javascript - 在 React.js 中防止每次渲染都进行大量计算的方法