我有一个自定义对象,我已经序列化为JSON
数据。序列化后,我将数据写回JSON
文件。这似乎是行得通的,但是我写回文件的JSON现在是一个字符串(即它以"
开始并以"
结尾)。Python:将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)
回报完美,但是当它写道,T他的文件是一个很长的字符串。
我该如何解决这个问题?
请问您可以包括一些示例输入和输出? – 2013-02-28 14:46:38
看起来像你编码它(它返回一个JSON字符串),然后把它放到'dump'中,它再次编码它,既然它是一个JSON字符串,你就可以在JSON字符串中得到JSON。 – 2013-02-28 14:52:55