2017-10-06 21 views
1

を使用してJSONファイルのデータを平らに私が使用して以下のサンプルJSONデータパンダ正規化

{ 
    "applications": [ 
    { 
     "id": 87334412, 
     "name": "cdata1", 
     "language": "known", 
     "health_status": "unknown", 
     "reporting": true, 
     "last_reported_at": "2017-10-06T06:30:55+00:00", 
     "application_summary": { 
     "response_time": 1.2, 
     "throughput": 216, 
     "error_rate": 0, 
     "target": 0.5, 
     "ascore": 1, 
     "host_count": 3, 
     "instance_count": 3 
     }, 
     "settings": { 
     "column": 0.5, 
     "columns": 7, 
     "columns1": true, 
     "columns2": false 
     }, 
     "links": { 
     "application_data": [ 
      93818199, 
      93819351, 
      93819359 
     ], 
     "servers": [], 
     "application_content": [ 
      32006189, 
      87342924, 
      47565225 
     ] 
     } 
    }, 

コードを見つけるしなさい複雑なネストされたJSONファイルを平らにしたいと思います:

import json 
from pandas.io.json import json_normalize 
json_file=open('ptr1.json') 
json_data=json.load(json_file) 
#print json_data["applications"] 
for line in json_data: 
    data=json_normalize(line,['name','id']) 
    print data 

することができますいずれかの助けを次のデータ名、id、last_reported_at、instance_countを取得します。ノートJSONファイルには、多くのid詳細に

答えて

1

IIUC含まれています

In [34]: d = json.loads(json_str) 

In [35]: cols = ['id','name','last_reported_at','application_summary.instance_count'] 

In [36]: pd.io.json.json_normalize(d['applications'])[cols] 
Out[36]: 
     id name   last_reported_at application_summary.instance_count 
0 87334412 cdata1 2017-10-06T06:30:55+00:00         3 
1 87334444 cdata2 2017-10-05T06:30:55+00:00         3 
+0

をありがとう、その期待 –

+0

@prasannaKumarとして働いていた、あなたは歓迎されています! [accepting](http://meta.stackexchange.com/a/5235)/ [upvoting](https://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow)を検討してください。 )あなたの質問に答えたと思うなら、答え – MaxU