データにシリアル化したカスタムオブジェクトがあり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)完全に戻りますが、書き込むとき、ファイルは長い文字列です。
この問題を解決するにはどうすればよいですか?