Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: needs more than 1 value to unpack

Tags:

python

syntax

What am I doing wrong to get this error?

    replacements = {}
    replacements["**"] = ("<strong>", "</strong>")
    replacements["__"] = ("<em>", "</em>")
    replacements["--"] = ("<blink>", "</blink>")
    replacements["=="] = ("<marquee>", "</marquee>")
    replacements["@@"] = ("<code>", "</code>")

    for delimiter, (open_tag, close_tag) in replacements: # error here
        message = self.replaceFormatting(delimiter, message, open_tag, close_tag); 

The error:

Traceback (most recent call last):
File "", line 1, in for doot, (a, b) in replacements: ValueError: need more than 1 value to unpack

All the values tuples have two values. Right?

like image 270
Nick Heiner Avatar asked Aug 11 '26 23:08

Nick Heiner


2 Answers

It should be:

for delimiter, (open_tag, close_tag) in replacements.iteritems(): # or .items() in py3k
like image 112
SilentGhost Avatar answered Aug 14 '26 12:08

SilentGhost


I think you need to call .items() like the third example in this link

for delimiter, (open_tag, close_tag) in replacements.items(): # error here
    message = self.replaceFormatting(delimiter, message, open_tag, close_tag)
like image 20
YuppieNetworking Avatar answered Aug 14 '26 13:08

YuppieNetworking