读者注意:这些数据最初是从XML获取的 - 如果有更简单的方法将xml直接导入mysql数据库请告诉我 - 已经搜索了很多但还没有找到。
我正在尝试通过一个有序的dict进行for循环,该dict已根据我从API获得的返回值对dicts进行了排序。响应数据大致如下(从xml转换后)
OrderedDict([('@name', 'namex'),
('type', OrderedDict([('member', ['aaa', 'bbb'])])),
('location', OrderedDict([('member', 'ccc')])),
('currency', OrderedDict([('member', 'ddd')])),
('10-k', OrderedDict([('member', 'eee')])),
('market-cap', OrderedDict([('member', 'fff')])),
('revenue', OrderedDict([('member', 'ggg')])),
('sector', OrderedDict([('member', 'www')])),
('risk', OrderedDict([('member', 'xxx')])),
('leverage', OrderedDict([('member', 'yyy')])),
('financials', OrderedDict([('group', OrderedDict([('member', 'zzz')]))])),
这让我感到非常挑衅让我的for循环开心并经历这一点,左边的每个项目都是一个列标题,整个blob是一行,
我是否应该尝试使用正则表达式执行某些操作,然后使用sed / awk忽略/删除/编辑文本然后尝试迭代?
寻找下一步的建议,在一个更简单的有序dict上,我的for循环成功但是api反应更好
OrderedDict([('aaa', 'bbb'), ('ccc', 'ddd'), ('eee', 'fff'), ('hhh', 'iii')])
我一直在尝试使用https://www.python-course.eu/sql_python.php来学习但是没有这种情况,如果有人为我的学习提供了更好的信息来源,请告诉我!
my for循环如下所示
for id, a in enumerate(data_response):
format_str = """INSERT INTO asdf (id, name, type, location, currency, 10-k, market-cap , revenux, sector, risk, leverage, financials) VALUES ({id}, '{name}', '{type}', '{location}', '{currency}', '{10-k}', '{market-cap }', '{revenux}', '{sector}', '{risk}', '{leverage}', '{financials}');"""
insert_a = format_str.format(id=id, name=a, type=data_response[a], location=data_response[a], currency=data_response[a], 10-k=data_response[a], market-cap=data_response[a], revenux=data_response[a], sector=data_response[a], risk=data_response[a], leverage=data_response[a], financials=data_response[a])
print(insert_a)
我的预期结果
INSERT INTO asdf (id, name, type, location, currency, 10-k, market-cap, revenuw, sector, risk, leverage, financials) VALUES (x, 'namex', 'aaa', '(bbb, ccc)', 'ddd', 'eee', 'fff', 'ggg', 'www', 'xxx', 'yyy', 'zzz' )
我需要能够遍历'name'有序的dict然后在名称的每个部分下面的细节,并考虑一个单循环。