具有键=值对的Python调用URL

具有键=值对的Python调用URL,python,url,Python,Url,由于我在Python中完成了我的第一步,我试图弄清楚,如何在Python中使用key=value对进行简单的URL调用,如: http://somehost/somecontroller/action?key1=value1&key2=value2 我试过一些东西,比如: key1 = 'value' key2 = 10 requests.get("http://somehost/somecontroller/action?key1=" + value + "&key2=" +

由于我在Python中完成了我的第一步,我试图弄清楚,如何在Python中使用key=value对进行简单的URL调用,如:

http://somehost/somecontroller/action?key1=value1&key2=value2
我试过一些东西,比如:

key1 = 'value'
key2 = 10
requests.get("http://somehost/somecontroller/action?key1=" + value + "&key2=" + str(10))

(来自)

但这不起作用。我还尝试了使用
subprocess.Popen()
以不同的方式调用
curl
,但是


我不想检查请求,URL调用就足够了。

使用
请求
库可以将参数编码为URL,如:

import requests
p = requests.models.PreparedRequest()

data={'key1': 'value', 'key2': str(10)}
p.prepare_url(url='http://somehost.com/somecontroller/action', params=data)

print p.url
在最后一次打印中,您应获得:

http://somehost.com/somecontroller/action?key2=10&key1=value

谢谢你的链接,但我已经尝试过这个解决方案。这对我不起作用。我想你有打字错误
data={'key1':'value','key2':str(10)}
。你犯了什么错误?你怎么知道它不工作呢?试试
data={'key1':'value','key2':'10';请求。获取(“http://127.0.0.1:5000/,params=data)
,url将为
http://127.0.0.1:5000/?key1=value&key2=10
。没有错误,url根本不是根据我的需要生成的。打印request.url时,在大多数情况下仅显示“”。错过了动作,当然还有kay的价值部分。
http://somehost.com/somecontroller/action?key2=10&key1=value