tl; dr:需要清除JSON数据以导入到CouchDB中-最好的方法是什么?
我一直在寻找清除输入的最佳方法,以将API JSON数据上传到我的NoSQL DB(CouchDB),但是以前没有建议方法可以正常工作的方法。问题在于API在JSON中返回了一些非标准数据类型的值。 (使用ShopifyAPI。)
我已经编写了一些函数来清除API中的输入,但是要确保它是一种高效,有效且包含所有内容的方法。
来自API调用的JSON数据作为字典输入。
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])
到目前为止,这些功能已经起作用,但是我可能会错过任何例外情况吗?还是有一种更简单的方法来做到这一点,而我却忽略了这一点?