2

读者注意:这些数据最初是从 XML 获得的——如果有更简单的方法可以将 xml 直接导入 mysql 数据库,请告诉我——已经搜索了很多,但还没有找到。

我正在尝试根据我从 API 获得的返回,通过一个有序的 dict 执行一个 for 循环。响应数据大致如下(从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 忽略/删除/编辑文本,然后尝试迭代?

寻找关于下一步的建议,在一个更简单的有序字典上,我的 for 循环是成功的,但是 api 的响应更好

OrderedDict([('aaa', 'bbb'), ('ccc', 'ddd'), ('eee', 'fff'), ('hhh', 'iii')])

我一直在尝试使用https://www.python-course.eu/sql_python.php来学习,但它没有这种情况,如果有人有更好的信息来源供我学习,请告诉我!

我的 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' )

我需要能够遍历“名称”有序字典,然后是名称每个部分下的详细信息,并考虑一个循环。

4

0 回答 0