[英]Convert JSON (key is column, value is record) to dataframe
我有一個JSON /字典對象,其中包含從Web服務提取的數據。
import pandas as pd
import json
json1 = json.loads(data_from_webservice)
print(json1)
Out[1]:
{'data':
[
{'Region': 'West', 'Airport': 'LAX', 'Score': 3, 'index': 0},
{'Region': 'West', 'Airport': 'SFO', 'Score': 6, 'index': 1},
{'Region': 'East', 'Airport': 'YYZ', 'Score': 9, 'index': 2}
]
}
如何將其讀入數據框,以使鍵為列,值為記錄。 數據框的索引也使用索引鍵,如下所示:
Region Airport Score
0 West LAX 3
1 West SFO 6
2 East YYZ 9
使用from_dict()
方法無濟於事:
df2 = pd.DataFrame.from_dict(json3, orient='columns')
print(df2)
Out[2]:
data
0 {'Region': 'West', 'Airport': 'LAX', 'Score': ...
1 {'Region': 'West', 'Airport': 'SFO', 'Score': ...
2 {'Region': 'East', 'Airport': 'YYZ', 'Score': ...
簡單的解決方案
a={'data':
[
{'Region': 'West', 'Airport': 'LAX', 'Score': 3, 'index': 0},
{'Region': 'West', 'Airport': 'SFO', 'Score': 6, 'index': 1},
{'Region': 'East', 'Airport': 'YYZ', 'Score': 9, 'index': 2}
]
}
pd.DataFrame(a['data'])
您也可以直接讀取JSON數據
pd.read_json(your_json,orient='split')
您還可以使用內置的json_normalize
的pandas
。
pd.io.json.json_normalize(json1, 'data')
Airport Region Score index
0 LAX West 3 0
1 SFO West 6 1
2 YYZ East 9 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.