我一直在使用python从API中提取数据,我从API中获取的数据是嵌套的json,所以当我第一次提取数据时,我会得到类似这样的数据
{
"id":4657,
"type":"Media",
"custom_fields":{
"regarding":"await",
"cf_arc":"nodetails",
"cf_bbv":"nodetails",
"cf_mcp":null,
"cf_tte":"nodetails",
"cf_pod":"nodetails",
"cf_mod":null,
},
"createddate":"2019-10-17T09:59:30Z",
"updateddate":"2019-10-17T09:59:30Z",
}
如果您看到自定义字段是嵌套的json,那么我想将这些嵌套的json放到每个字段的单列中。所以我把json放平,开始插入mysql数据库
def flatten_json(y):
out = {}
def flatten(x, name=''):
if type(x) is dict:
for a in x:
flatten(x[a], name + a + '_')
elif type(x) is list:
# i = 0
# for a in x:
# flatten(a, name + str(i) + '_')
# i += 1
out[name[:-1]] = str(x)
# print(x)
# out[name[:-1]] = x
# if len(x)==0:
# out[name[:-1]] = None
# else:
# out[name[:-1]] = x
else:
out[name[:-1]] = x
flatten(y)
return out
我的问题是json模式在不断变化,列的顺序也在不断变化
"createddate":"2019-10-17T09:59:30Z",
"custom_fields":{
"regarding":"await",
"cf_arc":"nodetails",
"cf_bbv":"nodetails",
"cf_mcp":null,
"cf_tte":"nodetails",
"cf_pod":"nodetails",
"cf_mod":null,
},
"type":"Media",
"updateddate":"2019-10-17T09:59:30Z",
}
列顺序已经更改,所以当我展平json并尝试插入时会出错
我用google搜索了同一个问题,但是没有得到任何帮助,我正在使用python3和pymysql将数据插入mysql
任何帮助都将不胜感激
目前没有回答
相关问题 更多 >
编程相关推荐