gpt4 book ai didi

Python JSON 属性错误 : 'str' object has no attribute 'read'

转载 作者:行者123 更新时间:2023-12-03 08:40:50 29 4
gpt4 key购买 nike

我是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 字符串的 json.loads()

>>> with open('/tmp/a.json', 'r') as f:
... for i in f:
... print(json.loads(i))
...
{'a': 123}

关于Python JSON 属性错误 : 'str' object has no attribute 'read' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62807109/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com