在Python中更新字典

2 投票
2 回答
792 浏览
提问于 2025-04-16 20:39

我想让我的字典在循环运行的时候不断更新,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了解不多,所以我肯定有办法做到这一点。不过,我现在的方法给我带来了这个错误。

“类型错误:'str'对象不支持项赋值”

编辑:我需要每三十分钟左右更新一次我的价格和数量,这个过程会在脚本循环时自动进行。这个网站需要我的用户名、密码、价格和数量。用户名和密码是不会变的,但价格和数量会变化。那么,有没有办法让我持续更新这些数据呢?

2 个回答

1

urllib.urlencode 这个函数会返回一个字符串。因为字符串是不可改变的对象,所以你不能对它的一部分进行赋值,这就是出现错误的原因。

不过,从你的代码来看,你似乎希望 param 是一个字典。也许你应该再详细说明一下你的问题……

4

urllib.urlencode [文档] 返回的是一个字符串,而不是字典。你需要在循环结束后再调用它。

可以这样做:

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

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

params = urllib.urlencode(params)

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


如果你对Python还不太了解,可以看看一些教程

撰写回答