我有一本字典:
accessToken = {'acces' : self.access , 'expires_in' :self.expires}
我希望它在我的第二个有效载荷中 firstKey 的值
我试过了
payload = {"firstKey" : json.dumps(accessToken) , "encodingVersion" : "1",
"headerVersion" : "3" , "username" : username }
我希望有这样的东西
{'firstKey': {'acces' : self.access , 'expires_in' :self.expires},"encodingVersion" : "1",
"headerVersion" : "3" , "username" : username }
更新1
我试过
payload = {"firstKey" : accessToken , "encodingVersion" : "1",
"headerVersion" : "3" , "username" : username }
并以FormRequest的形式发送,但它像
一样发送 headerVersion=3&username=usernameValue&encodingVersion=1&firstKey=selfaccess_value&firstKey=self_expires_value
更新2
我在 Scrapy 中发送我的查询
yield FormRequest(link, method="POST", formdata=payload
, callback=self.myFunction)
答案 0 :(得分:1)
通常使用变量名accessToken
作为值将其添加到字典中:
>>> accessToken = {'acces' : "self.access" , 'expires_in' :"self.expires"}
>>> payload = {"firstKey" : accessToken , "encodingVersion" : "1",
... "headerVersion" : "3" , "username" : "username" }
>>>
>>> payload
{'headerVersion': '3', 'username': 'username', 'encodingVersion': '1', 'firstKey': {'acces': 'self.access', 'expires_in': 'self.expires'}}
>>>
答案 1 :(得分:1)
{'firstKey': accessToken }
完全没问题。您还可以根据需要添加更多键和值
答案 2 :(得分:0)
您可以简单地使用:
payload = {"firstKey" : accessToken , "encodingVersion" : "1",
"headerVersion" : "3" , "username" : username }
在python中,字典值可以是任何类型,包括字典。
答案 3 :(得分:0)
为什么不在字典中添加一个字符作为其值,即:
d1 = {"key1": "val1", "key2": "val2"}
d2 = {"key3": "val3", "key4": "val4"}
d1["key5"] = d2
print(d1)
{"key1": "val1", "key2": "val2", "key5": {"key3": "val3", "key4": "val4"}}
答案 4 :(得分:0)
我通过更改
解决了我的问题yield FormRequest(link,headers=headers, formdata=payload, meta = meta , method="POST"
, callback=self.myFunction)
到
yield FormRequest(link,headers=headers, body=str(payload), meta = meta , method="POST"
, callback=self.myFunction)