2016-12-01 10 views
0

URLは辞書ですので、私はそのキーを反復しています。次に各キーについて、その辞書の値をアンパックしようとしています。アンパックする値が多すぎます...しかし、ありません

for key in url: 
    print len(url[key]) 
    for val, date in url[key]: 
     print val, date 

辞書は、このような形式である:

URL [キー] =([ '値'、 'value2の'、 'VALUE3']、 '日')

一番上のその2は、印刷長文の結果であるので面白いです

2 

Traceback (most recent call last): 
    File "insertCIF.py", line 10, in <module> 
    for val, date in url[key]: 
ValueError: too many values to unpack 

:しかし長さ2のタプルの鍵対応は、私は次のエラーを得続けます。では、2つの値をアンパックしようとすると、あまりにも多くの値をアンパックしようとしていますが、タプルの長さが実際に2であることを確認しましたか?

私はurl.itemsやiteritemsを回避策として(そしてうまくいく)ことができると知っていますが、この問題は私にとって不思議で、私はそれを理解することはできません。

答えて

1

forループを使用してurl[key]の値を反復しようとしているためです。代わりに、あなただけのやるべきこと、値を割り当てるために:

val, date = url[key]: 
+1

投稿したらすぐにわかりました。私はそれができるようにすぐに答えとしてこれを受け入れます。うわー、私は愚かだと感じる... –

1

まずオフ、あなたが本当にしたいことはこれです:

val, date = url[key] 

あなたがやっていることは、タプルを超えるループで、各要素をval, dateにアンパックします。

あなたのやり方では、あなたのリストであるurl [key] 'の最初の要素をとり、あなたのリスト(4項目)に十分な変数(2)を持たないval, dateに解凍します。 。

+1

ありがとう、私はそれを投稿したらすぐにそれを考え出した。他の男はあなたの約14秒前に答えたので私は彼の答えを受け入れています。私は愚かな笑を感じ、コーヒーを必要とする必要があります。もう一度ありがとう;-) –

+0

すべての良い - 私にもよく起こります。 – nlsdfnbch

関連する問題