我正在使用json模块,但是每当我使用json.dump或json.load函数时,我都会得到一个错误,说int没有.write()或.read()函数。这意味着使用os.open(“somefile.txt”)会给我一个int而不是普通的文件obj。
如果我尝试这样做:
import os
import json
file = os.open("Some_file.json", flags= os.RDWR | os.TRUNC)
data = {"something": "something"}
json.dump(data, file)
我得到一个这样的错误:AttributeError: 'int' object has no attribute 'write'
使用Python 3.12
我尝试使用.dumps和.loads与来自os.read()的字符串来解决这个问题,但是.loads()不能很好地与来自字符串的文件一起工作。
我试过这样的东西:
import os
import json
file = os.open("Some_file.json", flags= os.RDONLY | os.TEXT)
raw_data = os.read(file)
decoded_data = raw_data.decode()
data = json.loads(decoded_data)
得到了这个
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
有没有什么方法可以再次获得一个普通的文件对象,或者有没有什么方法可以解决这个问题?
1条答案
按热度按时间rur96b6h1#
你能打开一个文件来写和转储JSON数据吗?