Использование pandas.io.json.json_normalize () с пустыми атрибутами списка - PullRequest
0 голосов
/ 25 апреля 2018

Я использую pandas.io.json.json_normalize() для преобразования некоторого json в фрейм данных, который затем передается в базу данных SQLite с помощью df.to_sql().

Однако при работе с этим я получаю sqlite3.InterfaceError: Error binding parameter 1 - probably unsupported type.Я думаю, что из-за того, что одно из моих полей json является пустым массивом.

Я понимаю, что могу передать дополнительные аргументы пути в json_normalize, чтобы он извлекал значения массива и дополнял строки родительскими данными:

json_normalize(json_data, 'field_name_of_empty_array_value')

Однако я не могу использовать это для этого экземпляра, так как массив пуст и поэтому не возвращает значений.

Есть ли способ установитьпустое значение списка в None, или для сериализации пустого списка через функцию json_serialize?Или мне нужно сделать это на возвращаемом dataFrame?

Причина, по которой я хочу понять, возможно ли это, заключается в том, чтобы ограничить сложность при работе с более сложным json, который может иметь вложенные пустые значения массиваглубоко внутри его структуры.

Я искал этот конкретный вопрос, но, похоже, не могу найти пример, касающийся этого конкретного случая, и не уверен, что docs охватывает его.

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2018

Я считаю, что это невозможно.Поэтому вместо этого я использую json_normalize на полном объекте json, затем делим его, как требуется, с помощью операций DataFrame, перед преобразованием обратно в json через df.to_json и использую json_normalize с другими аргументами - в частности,аргумент record_path для создания записей на основе записей массива, как требуется.

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