簡體   English   中英

如何使用 python 中的鍵名創建嵌套的 json?

[英]How to create a nested json with key names in python?

我在 pandas dataframe 中有以下數據。 我想根據月份對數據進行分組,然后輸入。

month   hour    Type    count
0   4   0   Bike    8
1   4   0   Pedelec 16
2   4   1   Bike    9
3   4   1   Pedelec 4
4   4   2   Bike    18
... ... ... ... ...
412 12  21  Pedelec 15
413 12  22  Bike    7
414 12  22  Pedelec 10
415 12  23  Bike    2
416 12  23  Pedelec 15

我想將其轉換為帶有字段名稱的嵌套 json。 我用來創建字典的代碼是這樣的:

jsonfile=barchart.groupby(['month','Type'])[['hour','count']].apply(lambda x: x.to_dict('r')).reset_index(name='data').groupby('month')['Type','data'].apply(lambda x: x.set_index('Type')['data'].to_dict()).reset_index(name='data').groupby('month')['data'].apply(list).to_dict()

我得到的 output 是這種格式:

[{'month': 4,
  'values': [{'Bike': [{'hour': 0, 'count': 8},
     {'hour': 1, 'count': 9},
     {'hour': 2, 'count': 18},
     {'hour': 3, 'count': 2},
     {'hour': 4, 'count': 2},
 ...
     {'hour': 23, 'count': 14}],
    'Pedelec': [{'hour': 0, 'count': 16},
     {'hour': 1, 'count': 4},
     {'hour': 2, 'count': 12},
...
     {'hour': 23, 'count': 27}]}]},

預期 output:

[{'month': 4,
  'values': [{'Type': 'Bike': [{'hour': 0, 'count': 8},
     {'hour': 1, 'count': 9},

我使用以下內容創建了我想要的格式

jsonfile=barchart.groupby(['month','Type'])[['hour','count']].apply(lambda x: x.to_dict('r')).reset_index(name='data').groupby('month')['Type','data'].apply(lambda x: x.set_index('Type')['data'].to_dict()).reset_index(name='data').groupby('month')['data'].apply(list).to_dict()

json_arr=[]
for month,values in jsonfile.items():
    arr=[]
    for value in values:        
        for types, val in value.items():
            arr.append({"type": types, "values": val}) 
    json_arr.append({"month": month, "values": arr} )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM