gpt4 book ai didi

python - 如何在 OrderedDict 中迭代 OrderedDict

转载 作者:行者123 更新时间:2023-11-30 22:19:55 40 4
gpt4 key购买 nike

嗨,我想解析一些 order_dicts。我有以下错误

ipdb> for elem in my_orderdict['codeBook'].keys():
print("{0} ===> {1}".format(elem, my_orderdict[elem ]))
*** KeyError: '@xmlns'

假设我创建了一个 Orderdict,我想稍后对其进行迭代以获取每个项目和值。

ipdb >>> from collections import *
ipdb >>> my_orderdict = \
OrderedDict([('codeBook',
OrderedDict([('@xmlns', 'http://www.johndoe.com'),
('@xmlns:xsi',
'http://www.w3.org/2001/XMLSchema-instance'),
('@version', '1.2.2'),
('@ID', '_71M0001XCB-F-1991-novembre'),
('@xml-lang', 'en'),
('@xsi:schemaLocation', 'http://www.johndoe.xsd'),
('stdyDscr',
OrderedDict([('stdyInfo',
OrderedDict([('subject',
OrderedDict([('keyword',
['Chômage',
'Emploi'])]))]))]))]))])

ipdb >>> type(my_orderdict)
<class 'collections.OrderedDict'>

ipdb >>> my_orderdict['codeBook'].keys()
odict_keys(['@xmlns', '@xmlns:xsi', '@version',
'@ID', '@xml-lang', '@xsi:schemaLocation', 'stdyDscr'])

我正在创建一个循环来访问每个 odict_keys 的值

for elem in my_orderdict['codeBook'].keys():
print("{0} ===> {1}".format(elem, my_orderdict[elem ]))

我想要的结果应该是

@xmlns ===> 'http://www.johndoe.com'
@xmlns:xsi ===> 'http://www.w3.org/2001/XMLSchema-instance'
@version ===> 1.2.2
...

这样我就可以解析这个 orderdict。现在我的错误是:

ipdb> for elem in my_orderdict['codeBook'].keys():
print("{0} ===> {1}".format(elem, my_orderdict[elem ]))
*** KeyError: '@xmlns'

所以我无法访问我的第一个 orderdict 的属性。

最佳答案

看起来你的循环没有访问正确的字典。您应该使用:

for elem in my_orderdict['codeBook'].keys():
print("{0} ===> {1}".format(elem, my_orderdict['codeBook'][elem ]))

注意内部循环中的my_orderdict['codeBook']

基本上:您正在迭代字典 my_orderdict['codeBook'] 的元素,但尝试直接访问 my_orderdict 的值。

希望这有帮助!

关于python - 如何在 OrderedDict 中迭代 OrderedDict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48970684/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com