そこにはかなりの数のjson / pythonの質問があることは知っていますが、これを理解できないようです。2 つのリストを同じファイルにシリアル化しようとしています。そのために、2 つのリストを保持する新しいクラスを作成します。
class newJSON(object):
def __init__(self, list1, list2):
self.data = {'data': list1, 'info' : list2}
結果のデータ ファイルを次のようにする必要があります。
{
"data" : [
{
"name" : "aName" ,
"coordinates" : {"obj2" : 33, "obj3" : 71}
} , {
"name" : "bName" ,
"coordinates" : {"obj2" : 12, "obj3" : 77}
}
] ,
"info" : [
{
"first" : ["xxx" , "yyy"] ,
"space" : 21
} , {
"first" : ["aaa" , "bbb"] ,
"space" : 12
}
]
}
次に、 Serializing python object instance to JSONおよびその他のいくつかで推奨されているように、オブジェクトをデコードします。
jsonToEncode = newJSON(myList1, myList2)
myNewJSONData = json.dumps(jsonToEncode.__dict__)
ただし、「JSONシリアライズ可能エラーではありません」というメッセージが表示されます... dictの有無にかかわらずこれを試しましたが、成功しませんでした。JSON は、上記の形式である必要があります。何が問題ですか?
ありがとう
****編集****
2 つのリストを作成するために、表示されている json とまったく同じようにフォーマットされた json ファイルを取得し、次の操作を行います。
list1 = [obj1(**myObj) for myObj in data["data"]]
list2 についても同様です。obj1 は次のように作成されます。
class obj1(object):
def__init__(self, name, coordinates):
self.name = name
self.coordinate = coordinates