在Python中更新字典

时间:2011-07-01 09:10:30

标签: python dictionary

我正在尝试让循环运行时我的字典不断更新,x和y值会根据需要更改。这是我在收到错误消息并来到这里之前最初尝试过的方法。

params = urllib.urlencode({'name':'xxxxx', 'pass':'xxxxxxx', 'amount':'x', 'price':'y'})
x = math.floor(first)
y = last*1.007-last*.003
params['amount'] = x
params['price'] = y`
sell = urllib.urlopen("https://sellyourstuffwhatever.com", params)

我不太了解Python,所以我确信有办法做到这一点。然而,当前的方法给了我这个错误。

  

“TypeError:'str'对象不支持项目分配”

编辑:所以我需要每30分钟左右更新一次价格和金额,这将在脚本循环时自动完成。该网站需要我的用户名,密码,价格和金额。用户名和密码永远不会改变,但价格和金额不会改变。那么无论如何我可以不断更新它们吗?

2 个答案:

答案 0 :(得分:4)

urllib.urlencode [docs]返回一个字符串,而不是字典。你必须在循环后调用它。

类似的东西:

params = {'name':'xxxxx', 'pass':'xxxxxxx'}

for .....:
    params['amount'] = math.floor(first)
    params['price'] = last*1.007-last*.003

params = urllib.urlencode(params)

如果为编码字符串使用不同的变量名,那就更好了。


如果你还不了解Python,have a look at some tutorial

答案 1 :(得分:1)

urllib.urlencode返回一个字符串。由于字符串是不可变对象,因此无法为其中的一部分赋值,因此会出错。

无论如何:从您的代码中看起来您希望param成为字典。也许你应该多澄清一下你的问题......