【发布时间】:2016-11-07 16:18:55
【问题描述】:
我正在使用这样的 OrderedDict:
my_data = [OrderedDict([(u'@pageid', u'1108'), (u'@ns', u'0'), (u'@title', u'H\xf6rspiele f\xfcr Studenten')]), OrderedDict([(u'@pageid', u'989'), (u'@ns', u'0'), (u'@title', u'Impact')]), OrderedDict([(u'@pageid', u'580'), (u'@ns', u'0'), (u'@title', u'Impfgegner')]), OrderedDict([(u'@pageid', u'990'), (u'@ns', u'0'), (u'@title', u'MESH')]), OrderedDict([(u'@pageid', u'502'), (u'@ns', u'0'), (u'@title', u'Publikationen')])]
如果我使用for 循环遍历这个对象,一切都会按预期工作:
for foo in mydata:
print(foo['@pageid'])
print(foo['@ptitle'])
但是,我的问题是: 如果 OrderedDict 只包含一个条目,例如:
OrderedDict([(u'@pageid', u'328'), (u'@ns', u'0'), (u'@title', u'UWE')])
我的for 循环将失败:
for foo in mydata:
print(foo['@pageid'])
TypeError: string indices must be integers
...因为 for 循环不再给出 foo 和几个 ['ATTRIBUTE'],而是在 var foo 中写入所有 attribute-names。
我该怎么做才能使for 循环以与多条目数据对象相同的方式在单条目数据对象上工作?
【问题讨论】:
标签: python arrays python-2.7 for-loop