猿问

将 JSON 数据转换为 Pandas DataFrame

"{\".travis.yml\": {\"auth_count\": 1, \"authors\": {\"py/set\": [\"Alexandr Tsaplin\"]}, \"count\": 1}, \"fleetspeak/client-mac/com.google.code.fleetspeak.plist\": {\"auth_count\": 1, \"authors\": {\"py/set\": [\"mol123\"]}, \"count\": 1}, \"fleetspeak/src/client/client/client.go\": {\"auth_count\": 1, \"authors\": {\"py/set\": [\"mol123\"]}, \"count\": 1}, \"fleetspeak/src/client/client_test.go\": {\"auth_count\": 2, \"authors\": {\"py/set\": [\"Ben Galehouse\", \"mol123\"]}, \"count\": 2}, \"fleetspeak/src/client/entry/entry_unix.go\": {\"auth_count\": 1, \"authors\": {\"py/set\": [\"mol123\"]}, \"count\": 1}, \"fleetspeak/src/client/entry/entry_windows.go\":

我想将 JSON 数据(存储在 result.json 文件中)转换为数据帧。

我希望我的数据框看起来像所附图像中的数据框。

牛魔王的故事
浏览 105回答 1
1回答

慕田峪7331174

您可以将 JSON 读入数据帧,然后将作者从列表转换为字符串:# read json from string `s` to a dataframedf = (pd.read_json(s).T    .reset_index()    .rename(columns={'index': 'Filename', 'auth_count': 'authors_count'}))# convert lists of authors to comma-separated stringsdf['authors'] = df['authors'].apply(lambda x: ', '.join(x['py/set']))df输出:               Filename authors_count              authors count0           .travis.yml             1     Alexandr Tsaplin     11   fleetspeak/clien...             1               mol123     12   fleetspeak/src/c...             1               mol123     13   fleetspeak/src/c...             2  Ben Galehouse, m...     24   fleetspeak/src/c...             1               mol123     15   fleetspeak/src/c...             1               mol123     16   fleetspeak/src/c...             1               mol123     1
随时随地看视频慕课网APP

相关分类

Python
我要回答