Очистка ввода данных из API для загрузки базы данных NoSQL - PullRequest
0 голосов
/ 04 апреля 2019

tl; dr: необходимо очистить данные JSON для импорта в CouchDB - как лучше?

Я искал лучший способ очистки входов для загрузки данных API JSON в мою NoSQL DB (CouchDB),но никакие ранее не предлагаемые методы работают правильно.Проблема в том, что API возвращает некоторые значения в JSON, которые являются нестандартными типами данных.(Используя ShopifyAPI.)

Я написал несколько функций для очистки входных данных из API, но хочу убедиться, что это эффективный, действенный и всеобъемлющий метод.

Данные JSON, поступающие изВызов API вступает в силу как диктовка.

def clean_dict(messy_dict):
    if type(messy_dict) is not (dict):
        print (f'Some problem with dict:\n{messy_dict}')
    for key, value in messy_dict.items():
        if value is None:
            continue
        if isinstance(value,dict):
            clean_dict(value)
        if isinstance(value, list):
            clean_list(value)
        if type(value) not in (bool,int,float,str):
            messy_dict[key] = str(messy_dict[key])

def clean_list(messy_list):
    if type(messy_list) is not (list):
        print (f'Some problem with list:\n{messy_list}')
        return
    for index, list_item in enumerate(messy_list):
        if value is None:
            continue
        if isinstance(list_item,dict):
            clean_dict(list_item)
        if isinstance(list_item, list):
            clean_list(list_item)
        if type(value) not in (bool,int,float,str):
            messy_list[index] = str(messy_list[index])

Функции работали до сих пор, но могут ли быть какие-либо сценарии исключений, которые я мог бы пропустить?Или есть гораздо более простой способ сделать это, что я упустил из виду?

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