在Python中重新测试Json输出

2024-05-14 01:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在循环中有一个json输出,在循环结束时,我需要为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}}}

Tags: idsvisitdaysnullavgfirstlastfrequency
2条回答

一种可能的解决方案是创建嵌套字典,然后通过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)

您可以用{{简单地转义{,如下所示:

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

相关问题 更多 >