2017-11-03 10 views
-2

ループ内にjson出力があり、ループの最後にjsonに一意のキーを割り当てる必要があります。以下のような何か:PythonでJson出力を再ネストする

out = {"34267":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1456012800000,"Frequency":1,"Last visit":1456012800000,"Merchants":32,"Monetory":250,"Recency":621,"Visit_Ids":[116644],"RFMClass":"244","AvgLTV":13305.7692307692},"101":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1423958400000,"Frequency":1,"Last visit":1423958400000,"Merchants":32,"Monetory":250,"Recency":992,"Visit_Ids":[1883],"RFMClass":"444","AvgLTV":13305.7692307692},"8877":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1459900800000,"Frequency":1,"Last visit":1459900800000,"Merchants":32,"Monetory":250,"Recency":576,"Visit_Ids":[141943],"RFMClass":"144","AvgLTV":13305.7692307692}} 

しかしout_final = {32: out}のようなものを割り当て、 はインナーJSON、次のような文字列を作る:

{32: '{"34267":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1456012800000,"Frequency":1,"Last visit":1456012800000,"Merchants":32,"Monetory":250,"Recency":621,"Visit_Ids":[116644],"RFMClass":"244","AvgLTV":13305.7692307692},"101":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1423958400000,"Frequency":1,"Last visit":1423958400000,"Merchants":32,"Monetory":250,"Recency":992,"Visit_Ids":[1883],"RFMClass":"444","AvgLTV":13305.7692307692},"8877":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1459900800000,"Frequency":1,"Last visit":1459900800000,"Merchants":32,"Monetory":250,"Recency":576,"Visit_Ids":[141943],"RFMClass":"144","AvgLTV":13305.7692307692}}'} 

これが不可能な特定の値を検索することができます。内部構造を失うことなくユニークなキーを割り当てる方法がありますか?次のような

{32: {"34267":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1456012800000,"Frequency":1,"Last visit":1456012800000,"Merchants":32,"Monetory":250,"Recency":621,"Visit_Ids":[116644],"RFMClass":"244","AvgLTV":13305.7692307692},"101":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1423958400000,"Frequency":1,"Last visit":1423958400000,"Merchants":32,"Monetory":250,"Recency":992,"Visit_Ids":[1883],"RFMClass":"444","AvgLTV":13305.7692307692},"8877":{"Annual Expenditure":250,"Annual Frequency":1,"Avg days":null,"First visit":1459900800000,"Frequency":1,"Last visit":1459900800000,"Merchants":32,"Monetory":250,"Recency":576,"Visit_Ids":[141943],"RFMClass":"144","AvgLTV":13305.7692307692}}} 

答えて

0

一つの可能​​な解決策は、ネストされた辞書を作成し、その後thisによってjsonに変換される:

d = df.set_index('Guest').to_dict(orient='index') 
d_final = {32: j} 

import json 
with open('result.json', 'w') as fp: 
    json.dump(d, fp) 
0

あなたは、単にこのよう{{{を逃れることができます:

out_final = '{{32:{}}}'.format(out)