Функция json_normalize
Функция json_normalize применяется для преобразования
списка словарей или вложенных JSON-объектов в DataFrame.
Она позволяет развернуть вложенные структуры в отдельные столбцы,
используя разделитель в именах. Основные параметры: data -
входные данные, record_path - путь к записям внутри JSON,
meta - поля для добавления в вывод, sep - разделитель
для вложенных ключей (по умолчанию точка).
Синтаксис
pd.json_normalize(data, record_path=None, meta=None, sep='.')
Пример
Давайте нормализуем простой список словарей:
import pandas as pd
data = [
{'a': 1, 'b': 10},
{'a': 2, 'b': 20},
{'a': 3, 'b': 30}
]
df = pd.json_normalize(data)
print(df)
Результат выполнения кода:
a b
0 1 10
1 2 20
2 3 30
Пример
Давайте обработаем данные с вложенной структурой:
import pandas as pd
data = [
{'id': 1, 'info': {'a': 10, 'b': 20}},
{'id': 2, 'info': {'a': 30, 'b': 40}}
]
df = pd.json_normalize(data)
print(df)
Результат выполнения кода:
id info.a info.b
0 1 10 20
1 2 30 40
Пример
Используем параметр record_path для извлечения записей из массива:
import pandas as pd
data = {
'items': [
{'a': 1, 'b': 10},
{'a': 2, 'b': 20}
],
'count': 2
}
df = pd.json_normalize(data, record_path='items')
print(df)
Результат выполнения кода:
a b
0 1 10
1 2 20
Пример
Используем параметр meta для добавления дополнительных полей:
import pandas as pd
data = {
'items': [
{'a': 1, 'b': 10},
{'a': 2, 'b': 20}
],
'category': 'A'
}
df = pd.json_normalize(
data,
record_path='items',
meta=['category']
)
print(df)
Результат выполнения кода:
a b category
0 1 10 A
1 2 20 A
Пример
Изменим разделитель для вложенных ключей:
import pandas as pd
data = [
{'id': 1, 'info': {'a': 10, 'b': 20}},
{'id': 2, 'info': {'a': 30, 'b': 40}}
]
df = pd.json_normalize(data, sep='_')
print(df)
Результат выполнения кода:
id info_a info_b
0 1 10 20
1 2 30 40
Смотрите также
-
функция
read_json,
которая загружает JSON из файла или строки -
функция
read_csv,
которая загружает данные из CSV-файла -
функция
read_table,
которая загружает данные из табличного файла -
функция
read_xml,
которая загружает данные из XML-файла