Python-使用动态值为列表中的每个项目发送请求
我目前正在使用UPS软件包跟踪API,通过POST请求发送跟踪号,该API接收并发回包含软件包信息的JSON响应 目前,我只是使用几个嵌套的字典使用一个跟踪编号值处理实际请求,但我似乎不知道如何让它每次使用不同的跟踪编号发送请求 代码如下:Python-使用动态值为列表中的每个项目发送请求,python,loops,python-requests,Python,Loops,Python Requests,我目前正在使用UPS软件包跟踪API,通过POST请求发送跟踪号,该API接收并发回包含软件包信息的JSON响应 目前,我只是使用几个嵌套的字典使用一个跟踪编号值处理实际请求,但我似乎不知道如何让它每次使用不同的跟踪编号发送请求 代码如下: trk = ["tracknbr1", "tracknbr2", "tracknbr3"] data = {"UPSSecurity" : { "UsernameToken" : { "Username" : nme
trk = ["tracknbr1", "tracknbr2", "tracknbr3"]
data = {"UPSSecurity" : {
"UsernameToken" : {
"Username" : nme,
"Password" : pwd
},
"ServiceAccessToken" : {
"AccessLicenseNumber" : aln
},
},
"TrackRequest" : {
"Request" : {
"RequestOption" : 1,
"TransactionReference" : {
"CustomerContext" : ""
},
},
"InquiryNumber" : trk
}
}
req = requests.post("https://wwwcie.ups.com/rest/Track", json=data)
print (req.text)
“InquiryNumber”是跟踪号存储在请求中的位置
(如果显示的大部分代码对问题不必要,我表示歉意,因为这会使我的问题更容易理解。)
因此,现在它只发送列表中第一项的请求,然后打印响应
我正试图找出一种方法,让请求循环遍历列表中的每个项目,每次发送带有下一个跟踪号的请求
我用for
循环尝试了几种不同的方法,但我无法让它遍历每个请求列表中的实际值
可能有一个明显的解决方案我没有看到,因为我或多或少只是从Python开始。让我知道你们的想法。在您的示例中,您正在为不同的事情重用
trk
变量(针对列表
,然后针对单个查询编号
)
import requests
nme = 'your_username'
pwd = 'your_password'
aln = 'your_accesslicensenumber'
tracking_numbers = ["tracknbr1", "tracknbr2", "tracknbr3"]
for trk in tracking_numbers:
data = {"UPSSecurity" : {
"UsernameToken" : {
"Username" : nme,
"Password" : pwd
},
"ServiceAccessToken" : {
"AccessLicenseNumber" : aln
},
},
"TrackRequest" : {
"Request" : {
"RequestOption" : 1,
"TransactionReference" : {
"CustomerContext" : ""
},
},
"InquiryNumber" : trk
}
}
response = requests.post("https://wwwcie.ups.com/rest/Track", json=data)
print(response.json())
啊哈!非常感谢你。有趣的是,在看到您的响应之前,我只想将整个JSON请求放在一个循环中,但我甚至没有想到如何不能使用
trk
两次。谢谢