pandas.io.json.json_normalize
-
pandas.io.json.json_normalize(data, record_path=None, meta=None, meta_prefix=None, record_prefix=None, errors='raise', sep='.')[source] -
«Нормализация» полуструктурированных данных JSON в плоскую таблицу
Параметры: data : dict или список словарей
Несериализованные JSON-объекты
record_path : строка или список строк, по умолчанию None
Путь в каждом объекте к списку записей. Если не указано, предполагается, что данные представляют собой массив записей
meta : список путей (строка или список строк), по умолчанию None
Поля, используемые в качестве метаданных для каждой записи в результирующей таблице
record_prefix : строка, по умолчанию None
Если True, добавляет префикс к записям с точкой (?), например, foo.bar.field, если путь к записям — [‘foo’, ‘bar’]
meta_prefix : строка, по умолчанию None
errors : {‘raise’, ‘ignore’}, по умолчанию ‘raise’
- ‘ignore’ : пропустит KeyError, если ключи, перечисленные в meta, не всегда присутствуют
- ‘raise’ : вызовет KeyError, если ключи, перечисленные в meta, не всегда присутствуют
Новое в версии 0.20.0.
sep : строка, по умолчанию ‘.’
Вложенные записи сгенерируют имена, разделенные sep, например, для sep=’.’, { ‘foo’ : { ‘bar’ : 0 } } -> foo.bar
Новое в версии 0.20.0.
Возвращает: frame : DataFrame
Примеры
>>> from pandas.io.json import json_normalize >>> data = [{'id': 1, 'name': {'first': 'Coleen', 'last': 'Volk'}}, ... {'name': {'given': 'Mose', 'family': 'Regner'}}, ... {'id': 2, 'name': 'Faye Raker'}] >>> json_normalize(data) id name name.family name.first name.given name.last 0 1.0 NaN NaN Coleen NaN Volk 1 NaN NaN Regner NaN Mose NaN 2 2.0 Faye Raker NaN NaN NaN NaN>>> data = [{'state': 'Florida', ... 'shortname': 'FL', ... 'info': { ... 'governor': 'Rick Scott' ... }, ... 'counties': [{'name': 'Dade', 'population': 12345}, ... {'name': 'Broward', 'population': 40000}, ... {'name': 'Palm Beach', 'population': 60000}]}, ... {'state': 'Ohio', ... 'shortname': 'OH', ... 'info': { ... 'governor': 'John Kasich' ... }, ... 'counties': [{'name': 'Summit', 'population': 1234}, ... {'name': 'Cuyahoga', 'population': 1337}]}] >>> result = json_normalize(data, 'counties', ['state', 'shortname', ... ['info', 'governor']]) >>> result name population info.governor state shortname 0 Dade 12345 Rick Scott Florida FL 1 Broward 40000 Rick Scott Florida FL 2 Palm Beach 60000 Rick Scott Florida FL 3 Summit 1234 John Kasich Ohio OH 4 Cuyahoga 1337 John Kasich Ohio OH
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.22.0/generated/pandas.io.json.json_normalize.html