简体   繁体   English

加载 Json 嵌套到 Dataframe Pandas

[英]Load Json Nested to Dataframe Pandas

stackoverflow, please help me. stackoverflow,请帮助我。 i have json file.json like this.我有这样的 json file.json。

{"info":[
    {"name":"LYDIANA","address":[{"home":"San Francisco"},{"work":"Carolina"}],"emails":[],"phones":[{"work":"1234567"},{"home":"4323455"}]},
    {"name":"John Doe","address":[{"home":"Laguna"},{"work":"Ivory"}],"emails":[{"email":"john@gmail.com"},{"email":"doe@gmail.com"}],"phones":[{"work":"5435435"},{"work":"8678678"}]}
]}

how to create dataframe pandas like this?如何创建这样的数据框熊猫?

name        address                                 phones
LYDIANA     home: San Francisco | work: Carolina    1234567
LYDIANA     home: San Francisco | work: Carolina    4323455
John Doe    home: Laguna | work: Ivory              5435435
John Doe    home: Laguna | work: Ivory              8678678
import pandas as pd

dct = {"info":[
    {"name":"LYDIANA","address":[{"home":"San Francisco"},{"work":"Carolina"}],"emails":[],"phones":[{"work":"1234567"},{"home":"4323455"}]},
    {"name":"John Doe","address":[{"home":"Laguna"},{"work":"Ivory"}],"emails":[{"email":"john@gmail.com"},{"email":"doe@gmail.com"}],"phones":[{"work":"5435435"},{"work":"8678678"}]}
]}

all_data = []
for row in dct['info']:
    all_data.append({
            'name': row['name'],
            'address': ' | '.join('{}: {}'.format(k, v) for a in row['address'] for k, v in a.items()),
            'phones': [v for p in row['phones'] for v in p.values()]
        })

df = pd.DataFrame(all_data).explode('phones')
print(df)

Prints:印刷:

       name                               address   phones
0   LYDIANA  home: San Francisco | work: Carolina  1234567
0   LYDIANA  home: San Francisco | work: Carolina  4323455
1  John Doe            home: Laguna | work: Ivory  5435435
1  John Doe            home: Laguna | work: Ivory  8678678

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM