-2
## Dictionary List
G046 = {'046-HOST1':'192.168.1.10', '046-HOST2':'10.1.0.1'}
G688 = {'688-HOST1':'8.8.8.8', '688-HOST2' : '123.3.3.3'}   
## Group List 
GroupList = ['G046', 'G688']
for groupname in GroupList:
    print ('Groupname is', groupname)  ## prints "G046" and "G688"
    print (dict(groupname).keys())     ## <---- error occurs

すべての辞書リストのすべての項目を印刷したい。しかし、次のメッセージが表示されました。

ValueError: dictionary update sequence element #0 has length 1; 2 is required

誰か助けてくれませんか?

4

3 に答える 3

1

あなたのコードは、文字列を dict に変換しようとしています。それはまさにそのdict通りですが、ここでは意味がありません。

代わりに、オブジェクトを に直接入れてGroupListください。

GroupList = [G046, G688]
for group in GroupList:
    print (group.keys())

しかし、私が本当に欲しいのは、各辞書の項目を別々の行に印刷できることです。

私はpprintこれに使用するだけで、それで完了です:

from pprint import pprint
GroupList = [G046, G688]
for group in GroupList:
    pprint(group, width=1) # pass a small width to force multiline output
于 2013-10-20T18:35:08.940 に答える
0

これがあなたが望むものだと思います:

G046 = {'046-HOST1':'192.168.1.10', '046-HOST2':'10.1.0.1'}
G688 = {'688-HOST1':'8.8.8.8', '688-HOST2' : '123.3.3.3'}   

GroupList = [G046, G688] # Make the items the dictionaries themselves

for groupname in GroupList:
    print ('Groupname is', groupname)
    print (groupname.keys())

出力:

('Groupname is', {'046-HOST2': '10.1.0.1', '046-HOST1': '192.168.1.10'})
['046-HOST2', '046-HOST1']
('Groupname is', {'688-HOST2': '123.3.3.3', '688-HOST1': '8.8.8.8'})
['688-HOST2', '688-HOST1']

基本的に、項目をGroupList文字列ではなく辞書にするだけでした。こちらも不要なので外しdictました。print (dict(groupname).keys())

于 2013-10-20T18:35:38.827 に答える