首页 > 解决方案 > 将 JSON 数据转换为 Python 数据框

问题描述

我正在尝试将 JSON 数据转换为 python 数据框。当我规范化 JSON 数据时,完整的数据作为系列对象存储在单个记录中。您能告诉我如何将以下 JSON 数据转换为 Python 数据框吗?

代码:

[{'Name':"SS",  
  'Order':[{'Type':'DO','Value':'10.11/7654326'},  
           {'Type':'UR','Value':'https://do.org/10.11/765436'}],
  'Order_Type':'dsggg',
  'Performance':[{'Per':{'Begin_Date':'2018-01-01','End_Date':'2018-02-02'},  
                  'Ins':[{'Me':'TT','Sales':2}]}]},
{'Name':"MM",
  'Order':[{'Type':'DO','Value':'10.11/7654326'},  
           {'Type':'UR','Value':'https://do.org/10.11/765436'}],
  'Order_Type':'dsggg',
  'Performance':[{'Per':{'Begin_Date':'2018-01-01','End_Date':'2018-02-02'},  
                  'Ins':[{'Me':'TT','Sales':2}]}]}

]

标签: pythonjson

解决方案


如果您不需要使用循环来获取每个循环,则可以使用 Pandas。

import pandas as pd
from pandas.io.json import json_normalize

data = [{'Name':"SS",  
  'Order':[{'Type':'DO','Value':'10.11/7654326'},  
           {'Type':'UR','Value':'https://do.org/10.11/765436'}],
  'Order_Type':'dsggg',
  'Performance':[{'Per':{'Begin_Date':'2018-01-01','End_Date':'2018-02-02'},  
                  'Ins':[{'Me':'TT','Sales':2}]}]},
{'Name':"MM",
  'Order':[{'Type':'DO','Value':'10.11/7654326'},  
           {'Type':'UR','Value':'https://do.org/10.11/765436'}],
  'Order_Type':'dsggg',
  'Performance':[{'Per':{'Begin_Date':'2018-01-01','End_Date':'2018-02-02'},  
                  'Ins':[{'Me':'TT','Sales':2}]}]}]

df = pd.DataFrame.from_dict(json_normalize(data), orient='columns')


推荐阅读