';对于循环';.plist(或xml)字典中的python 3字典
希望这里有一个快速的python问题';对于循环';.plist(或xml)字典中的python 3字典,python,dictionary,for-loop,Python,Dictionary,For Loop,希望这里有一个快速的python问题 import plistlib pl = plistlib.readPlist('/Users/name/Documents/some.plist') print(pl[0]['keyA'] , pl[0]['keyD'] , pl[0]['keyG']) 我如何编写一个for循环或一个list函数,它将在字典中循环,将值打印到某些键上 主词典将有30个条目(词典中的词典),每个条目内大约有40个键。) 例如: print(pl[0]['keyA']
import plistlib
pl = plistlib.readPlist('/Users/name/Documents/some.plist')
print(pl[0]['keyA'] , pl[0]['keyD'] , pl[0]['keyG'])
我如何编写一个for循环或一个list函数,它将在字典中循环,将值打印到某些键上
主词典将有30个条目(词典中的词典),每个条目内大约有40个键。)
例如:
print(pl[0]['keyA'] , pl[0]['keyD'] , pl[0]['keyG'])
print(pl[1]['keyA'] , pl[1]['keyD'] , pl[1]['keyG'])
print(pl[2]['keyA'] , pl[2]['keyD'] , pl[2]['keyG'])
print(pl[n]['keyA'] , pl[n]['keyD'] , pl[n]['keyG'])
其中,pl
是主词典,然后0-n
参考词典中的词典
我希望这是有意义的写下来吧!:p
for sub_dict in pl.values():
print sub_dict['keyA'], sub_dict['keyD'], sub_dict['keyG']
(
.values()
表示对字典的值进行迭代,因为通常对字典进行迭代都要经过它的键。在Python 2中,使用.itervalues()
)您遇到的问题与plist
无关,而是嵌套字典
从您编写的内容来看,您的pl
dict看起来像:
pl = {0: {'keyA': 1, 'keyD': 2, 'keyG': 3},
1: {'keyA': 11, 'keyD': 12, 'keyG': 13}}
在这种情况下,只需使用:
keys = ['keyA', 'keyD', 'keyG']
for i in range(len(pl)):
print(' '.join(str(pl[i][key]) for key in keys)
如果所有的
pl
键都是数字,这将起作用,否则您可能需要使用或查看文件“plistread.py”,第6行打印子目录['NOISE'],子目录['SSID_STR'],子目录['BSSID']^SyntaxError:无效语法回溯(最近一次调用):文件“plistread.py”,第5行,在for sub_dict in pl.values():AttributeError:'list'对象没有属性'values'
如果它说'list'对象没有属性'values'
,那么'list'
对象没有'values'
属性!问题是外部数据结构是一个列表,而不是一个字典。要迭代列表,您只需在pl:
@user969617中为sub_dict编写,因为您使用的是Python 3,所以您当然必须使用print
。