Python:将JSON字符串写入文件。
我有一个自定义对象,我把它转换成了JSON
格式的数据。转换完成后,我把这些数据写回到一个JSON
文件里。这个过程看起来是正常的,但我发现写入文件的JSON
数据变成了一个字符串(也就是说,它是以"
开头,以"
结尾的)。
所以,当我尝试把这个新文件加载进来进行解析时,我的解析器认为它是一个字符串,这样就出现了错误:
TypeError: string indices must be integers
我通过以下方式来序列化这个对象:
class myEncoder(JSONEncoder):
def default(self, o):
return o.__dict__
然后调用这个类:
with open('updatedMapData.json', 'w') as outfile:
json.dump(myEncoder().encode(jsonToEncode) , outfile)
myEncoder().encode(data)
返回的结果是正确的,但写入文件后,文件内容却变成了一个很长的字符串。
我该如何解决这个问题呢?
2 个回答
0
json.dump的第一个参数是你想要转换成JSON格式的对象,但你可以把你的类作为cls
参数传进去,所以你需要这样调用它:
json.dump(jsonToEncode, outfile, cls=myEncoder)
1
只需要这样做:
outfile.write(myEncoder().encode(jsonToEncode))