Попытка свести список словарей в Dataframe, но не удается получить информацию самого низкого уровня с помощью json-normaPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Попытка свести список словарей в Dataframe, но не удается получить информацию самого низкого уровня с помощью json-norma

Сообщение Anonymous »

  • Ниже приведен результат вызова API — это словарь, который содержит список интересующих меня словарей в разделе «ответ».
  • I отфильтровать fixment_ids для «ответа», потому что остальная информация не является полезной.
  • он возвращает список словарей, которые меня интересуют. Я хочу получить статистику самого низкого уровня для каждой команды в структуре таблицы ниже, но я не могу туда попасть, как бы я ни пытался с помощью json_normalize

Код: Выделить всё

url = "https://api-football-v1.p.rapidapi.com/v3/fixtures/statistics"

querystring = {"fixture":"1220142"}

headers = {
"x-rapidapi-key": "MY_KEY",
"x-rapidapi-host": "api-football-v1.p.rapidapi.com"
}

response = requests.get(url, headers=headers, params=querystring)

fixture_ids = response.json()

Код: Выделить всё

{'get': 'fixtures/statistics',
'parameters': {'fixture': '1220142'},
'errors': [],
'results': 2,
'paging': {'current': 1, 'total': 1},
'response': [{'team': {'id': 250,
'name': 'Kilmarnock',
'logo': 'https://media.api-sports.io/football/teams/250.png'},
'statistics': [{'type': 'Shots on Goal', 'value': 3},
{'type': 'Shots off Goal', 'value': 7},
{'type': 'Total Shots', 'value': 15},
{'type': 'Blocked Shots', 'value': 5},
{'type': 'Shots insidebox', 'value': 14},
{'type': 'Shots outsidebox', 'value': 1},
{'type': 'Fouls', 'value': 8},
{'type': 'Corner Kicks', 'value': 7},
{'type': 'Offsides', 'value': None},
{'type': 'Ball Possession', 'value': '48%'},
{'type': 'Yellow Cards', 'value': 1},
{'type': 'Red Cards', 'value': None},
{'type': 'Goalkeeper Saves', 'value': 5},
{'type': 'Total passes', 'value': 349},
{'type': 'Passes accurate', 'value': 248},
{'type': 'Passes %', 'value': '71%'},
{'type': 'expected_goals', 'value': None},
{'type': 'goals_prevented', 'value': None}]},
{'team': {'id': 1386,
'name': 'Dundee Utd',
'logo': 'https://media.api-sports.io/football/teams/1386.png'},
'statistics': [{'type': 'Shots on Goal', 'value': 8},
{'type': 'Shots off Goal', 'value': 4},
{'type': 'Total Shots', 'value': 19},
{'type': 'Blocked Shots', 'value': 7},
{'type': 'Shots insidebox', 'value': 13},
{'type': 'Shots outsidebox', 'value': 6},
{'type': 'Fouls', 'value': 12},
{'type': 'Corner Kicks', 'value': 3},
{'type': 'Offsides', 'value': None},
{'type': 'Ball Possession', 'value': '52%'},
{'type': 'Yellow Cards', 'value': 2},
{'type': 'Red Cards', 'value': None},
{'type': 'Goalkeeper Saves', 'value': 0},
{'type': 'Total passes', 'value': 379},
{'type': 'Passes accurate', 'value': 258},
{'type': 'Passes %', 'value': '68%'},
{'type': 'expected_goals', 'value': None},
{'type': 'goals_prevented', 'value': None}]}]}
Ниже показано, что я пробовал с fixment_ids:

Код: Выделить всё

fixture_ids = fixture_ids['response']
new = pd.json_normalize(fixture_ids,record_path='statistics',meta=[['team','id']])
Приведенный ниже пример работает тем, что дает мне различные типы, такие как удары по воротам, но они находятся в одном столбце, а их значение находится справа, как показано ниже. Я хочу иметь «тип» заголовка столбца, например. 'type.shots on target' со значением под ним.



тип
значение
team.id
< /tr>



удары по воротам
3
250


Удары от ворот
7
250


.....
....
...


кадров на Гол
8
1386


Удары мимо ворот
4
1386


.....
....
...



Ниже показан результат, который мне нужен. Спасибо.



Идентификатор команды
Удары по воротам
Удары мимо ворот




250
3
7


1386
8
4




Подробнее здесь: https://stackoverflow.com/questions/790 ... get-to-the
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как получить один Dataframe вместо нескольких Dataframe при преобразовании списка словарей в Dataframe
    Гость » » в форуме Python
    0 Ответы
    156 Просмотры
    Последнее сообщение Гость
  • Pythonic способ свести словарь в список, используя понимание списка
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Создайте DataFrame из DataFrame, имеющего список словарей.
    Anonymous » » в форуме Python
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Удаление режимов низкого уровня с карты CMB с помощью HealPix
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как свести к минимуму функцию С++ с помощью повышения?
    Гость » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»