使用Python将数据帧相互嵌套

2024-06-28 19:18:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要达到的目标

  • 从api获取JSON
  • 解析它来过滤一些字段
  • 将自定义JSON保存到文件中

在屏幕截图中,我只想使用状态属性和用户结构

What I have Tried?

为此,我创建了两个数据帧,一个用于状态(headerdf),一个用于用户(userdf)

这两个帧有不同的列当我附加这两个时,我会得到两次用户属性。 这是我的密码

header_columns = ['created_at' , 'id',  'id_str' , 'text' , 'truncated' ]

headerdict ={'statuses' : []}

headerdict['statuses'].append(data['statuses'][0]['created_at'])
headerdict['statuses'].append(data['statuses'][0]['id'])
headerdict['statuses'].append(data['statuses'][0]['id_str'])
headerdict['statuses'].append(data['statuses'][0]['text'])
#headerdict['statuses'].append(data['statuses'][0]['source'])
headerdict['statuses'].append(data['statuses'][0]['truncated'])

userdict = {'user': []}
userdict['user'].append(data['statuses'][0]['user']['id'])
userdict['user'].append(data['statuses'][0]['user']['id_str'])
userdict['user'].append(data['statuses'][0]['user']['name'])
userdict['user'].append(data['statuses'][0]['user']['screen_name'])
userdict['user'].append(data['statuses'][0]['user']['location'])
userdict['user'].append(data['statuses'][0]['user']['url'])
userdict['user'].append(data['statuses'][0]['user']['description'])
userdict['user'].append(data['statuses'][0]['user']['translator_type'])
userdict['user'].append(data['statuses'][0]['user']['protected'])
userdict['user'].append(data['statuses'][0]['user']['verified'])
userdict['user'].append(data['statuses'][0]['user']['followers_count'])
userdict['user'].append(data['statuses'][0]['user']['friends_count'])
userdict['user'].append(data['statuses'][0]['user']['listed_count'])
userdict['user'].append(data['statuses'][0]['user']['favourites_count'])
userdict['user'].append(data['statuses'][0]['user']['created_at'])
userdict['user'].append(data['statuses'][0]['user']['utc_offset'])
userdict['user'].append(data['statuses'][0]['user']['time_zone'])

headerdf= pd.DataFrame(headerdict,header_columns)
userdf= pd.DataFrame(userdict,user_columns)
frames = [headerdf,userdf]
finaldf = pd.concat(frames,sort = False)
print(finaldf)

印刷得很好。但是编写json会复制与用户相关的属性。它还会放入\并破坏我的json文件

 with open('testcopy.json', 'w') as json_file:
        json.dump(finaldf.to_json(),json_file)

期待大师的回应。 enter image description here


Tags: columns用户idjsondata属性countstatuses