Вложите фреймы данных друг в друга, используя Python Pandas - PullRequest
0 голосов
/ 16 апреля 2019

Чего я хочу достичь

  • Получить JSON из API.
  • Разобрать его, чтобы отфильтровать некоторые поля.
  • Сохранить настроенный 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...