簡體   English   中英

將JSON(鍵是列,值是記錄)轉換為數據框

[英]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_normalizepandas

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.

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