[英]import nested json into pandas dataframe
JSON 字符串:
{
"PurchaseId": "Pur-001",
"Orders": [{
"id": "154",
"isOnline": false,
"Store_location": {
"Order-Date": "2019-06-04T07:35:00"
},
"Store_Network": [{
"Network_Domain": "Food_Processing"
}]
}],
"Sales": [{
"id": "1856",
"SalesLoads": [
1000,
3000,
5000
],
"Network": [{
"id": "London_Store",
"history": [
0,
1,
2,
0,
0,
0,
0,
0
],
"Leads": {
"From": "Mgmt-Dept",
"time": "34hrs"
}
}]
}]
}
到目前為止我的代碼:
import pandas.io.json as pd_json
data = pd_json.loads(json_str)
df=pd_json.json_normalize(data, record_path='loads')
我試過 JSON_Normalize 但無法將此 JSON 字符串加載到數據幀中。 是否可以使用 JSON Normalize 來做到這一點,或者是否有任何其他優化的解決方案可用。
這很長,但是可以完成工作。 希望有人能提供更好的解決方案和更少的冗長答案。
a = {
"PurchaseId": "Pur-001",
"Orders": [{
"id": "154",
"isOnline": False,
"Store_location": {
"Order-Date": "2019-06-04T07:35:00"
},
"Store_Network": [{
"Network_Domain": "Food_Processing"
}]
}],
"Sales": [{
"id": "1856",
"SalesLoads": [
1000,
3000,
5000
],
"Network": [{
"id": "London_Store",
"history": [
0,
1,
2,
0,
0,
0,
0,
0
],
"Leads": {
"From": "Mgmt-Dept",
"time": "34hrs"
}
}]
}]}
b = pd.DataFrame.from_dict(a)
b = (b.assign(Orders_id = b.Orders[0]['id'],
Orders_isOnline = b.Orders[0]['isOnline'],
Orders_Store_Location_Number = pd.to_datetime(b.Orders[0]['Store_location']['Order-Date'].split('T')[0])
.strftime('%m/%d/%Y'),
Orders_Store_Network_Domain = b.Orders[0]['Store_Network'][0]['Network_Domain'],
Sales_id = b.Sales[0]['id'],
Sales_Load = [b.Sales[0]['SalesLoads']],
Sales_Network_id = b.Sales[0]['Network'][0]['id'],
Sales_Network_history = [b.Sales[0]['Network'][0]['history']],
Sales_Leads_from = b.Sales[0]['Network'][0]['Leads']['From'],
Sales_Lead_Time = b.Sales[0]['Network'][0]['Leads']['time']
)
.drop(['Orders','Sales'],axis=1)
)
b
您可以直接將字符串導入到DataFrame中 ,因為您必須將String轉換為Dictionay。 只需導入JSON並進行轉換
json_str = json.dumps(json_data
json1_data = json.loads(data)
df= json_normalize(json1_data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.