我使用的是OrderedDict這樣的:如何處理OrderedDict與循環Python中的一個條目?
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']
,而是寫了我所有attribute
-names在VAR foo
。
我該怎麼做才能使for
循環能夠像使用多項數據對象一樣處理單項數據對象?
THX雅克,我的問題是,wheter我得到的情況下,A或情況B,我有數據「爲」我的'my_data'-VAR我無法控制。有沒有辦法來改變my_data與一個OrderedDict進入名單? – Produnis
你可以做'如果不是isinstance(my_data,列表):my_data = my_data]'然後。 –