使用字符串运算符将变量添加到python字典

时间:2013-03-01 01:41:32

标签: python string dictionary

尝试添加一个包含变量的字符串,该变量可以是我的一个词典.Temp只是一个随机的文本字符串,33个字符长。

lst = ''
temp = ''
def randomstr():
    global lst, temp
    temp = ''
    lst = [random.choice(string.ascii_letters + string.digits) for n in xrange(33)]
    temp = "".join(lst)
headers = {"Content-type": "text/xml", "Accept": "text/plain", "Host": "chat.site.com", "Accept-Encoding": "identity", "User-agent": "Client Python-urllib/2.6", "userid": "39",}
headers["If-none-match"] = "jrc-%s"%temp
headers["If-none-match"] = "jrc-" + temp
headers["If-none-match"] = "jrc-%s" % (temp)

这些都不起作用,我做错了什么?

print temp
print headers

输出:

K60IcFrZveioTrPY9cAJ38IOANj67eElK

{'接受编码':'身份','主持':'chat.site.com','接受':'text / plain',  'User-agent':'Client Python-urllib / 2.6','userid':'39','If-n one-match':'jrc-','Content-type':'text / xml'}

它很奇怪,因为temp本身输出正常,但不在dict

headers["If-none-match"] = "jrc-"+str(temp)

也不输出

1 个答案:

答案 0 :(得分:0)

如果temp是具有多个元素的tuple,则上述内容将失败:

 "jrc-%s"%temp #not the right number of elements for formatting
 "jrc-"+temp   #can't concatenate string and tuple

我认为如果workdict出现类似原因,也会失败。

应该“工作”*的东西是"jrc-"+str(temp)

*这里的工作是通过不抛出异常来定义的