我是 Python 初学者。
Python 3.7.6
import json
fil='numbers.json'
num=[]
with open(fil,'r') as file :
for obj in file :
num.append(json.load(obj))
print(num)
这是 JSON 文件:
"45""56""78""75"
这是我在运行代码时遇到的错误
Traceback (most recent call last):
File "C:/Users/Dell/PycharmProjects/untitled/tetu.py", line 6, in <module>
num.append(json.load(obj))
File "C:\Users\Dell\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'
知道我该如何解决这个问题吗?
提前致谢
首先你的文件内容不是json。
给定有效的 json 文件内容/tmp/a.json
:
{"a": 123}
json.load()
接受文件对象,例如:
>>> import json
>>> with open('/tmp/a.json', 'r') as f:
... data = json.load(f)
... print(data)
...
{'a': 123}
您的错误来自迭代文件对象,它将每一行读入字符串
>>> with open('/tmp/a.json', 'r') as f:
... for i in f:
... print(i.__class__)
...
<class 'str'>
在这种情况下,您将需要使用json.loads()
它接受一个 json 字符串
>>> with open('/tmp/a.json', 'r') as f:
... for i in f:
... print(json.loads(i))
...
{'a': 123}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)