AttributeError: 'dict' object has no attribute 'encode'
AttributeError: 'dict' object has no attribute 'encode'
我正在尝试 post 使用多部分表单数据向目标网站发出请求
m = MultipartEncoder(
fields={"auth":{"id":str(random.randint(0, 999991)),"sign":randoms(32)},
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}
})
s = requests.Session()
s.post('targetwebsite', data=m, headers=headers['Content-Type': m.content_type], timeout=5)
但我总是以
结束
line 25, in <module>
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}
AttributeError: 'dict' object has no attribute 'encode'
我不知道是什么原因造成的,我什至尝试先转换为 JSON 然后 posting
uuhh = {'auth':{"id":str(random.randint(0, 999991)),"sign":randoms(32)},
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}}
fields = json.dumps(uuhh)
m = MultipartEncoder(fields=fields)
但是它说 ValueError: not enough values to unpack (expected 2, got 1)
所以我猜这是非常错误的。
您似乎将 auth
和 data
作为字典传递,但它们应该是字符串。变化
m = MultipartEncoder(
fields={"auth":{"id":str(random.randint(0, 999991)),"sign":randoms(32)},
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}
})
到
m = MultipartEncoder(
fields={"auth":'{{"id":{},"sign":{}}}'.format(random.randint(0, 999991), randoms(32)),
"data":'{{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}}'
})
解决您的问题。
MultipartEncoder 尝试对字段值使用 运行 .encode(...)
方法。
由于您传递的是字典,因此无法编码并且出现错误
我正在尝试 post 使用多部分表单数据向目标网站发出请求
m = MultipartEncoder(
fields={"auth":{"id":str(random.randint(0, 999991)),"sign":randoms(32)},
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}
})
s = requests.Session()
s.post('targetwebsite', data=m, headers=headers['Content-Type': m.content_type], timeout=5)
但我总是以
结束line 25, in <module>
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}
AttributeError: 'dict' object has no attribute 'encode'
我不知道是什么原因造成的,我什至尝试先转换为 JSON 然后 posting
uuhh = {'auth':{"id":str(random.randint(0, 999991)),"sign":randoms(32)},
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}}
fields = json.dumps(uuhh)
m = MultipartEncoder(fields=fields)
但是它说 ValueError: not enough values to unpack (expected 2, got 1)
所以我猜这是非常错误的。
您似乎将 auth
和 data
作为字典传递,但它们应该是字符串。变化
m = MultipartEncoder(
fields={"auth":{"id":str(random.randint(0, 999991)),"sign":randoms(32)},
"data":{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}
})
到
m = MultipartEncoder(
fields={"auth":'{{"id":{},"sign":{}}}'.format(random.randint(0, 999991), randoms(32)),
"data":'{{"action":"login","login":"embrella","password":"steffano321","stayLogged":"False"}}'
})
解决您的问题。
MultipartEncoder 尝试对字段值使用 运行 .encode(...)
方法。
由于您传递的是字典,因此无法编码并且出现错误