使用python将json数据放入url

时间:2015-08-08 16:29:46

标签: python json http url mlab

我正在尝试在url中编码json参数,以便与mongolab restAPI一起使用。

我的网址看起来像这样

url = 'https://api.mongolab.com/api/1/databases/db/collections/coll?q={"q": "10024"}&apiKey=mykey 

我正在尝试使用

打开它
urllib2.urlopen(url)

但我遇到错误,说我的apikey不正确。我知道这不是真的,因为如果我将网址复制并粘贴到我的浏览器中,我会得到正确的答案。我也知道我可以访问其余的api,只要我没有查询(所以它必须是json /格式化问题)。

所以有人知道如何编码json查询

{"q": "10024"} 
进入网址?谢谢!

2 个答案:

答案 0 :(得分:1)

您必须对字符串进行正确的URL编码。使用urllib.quote_plus() function

url = 'https://api.mongolab.com/api/1/databases/db/collections/coll?q={q}&apiKey={key}'
query = urllib.quote_plus('{"q": "10024"}')
urllib2.urlopen(url.format(q=query, key=your_api_key))

答案 1 :(得分:0)

您也可以使用requests库。

示例:

import requests
payload = {'q': '10024', 'apiKey': 'mykey'}
r = requests.get("https://api.mongolab.com/api/1/databases/db/collections/coll", params=payload)
print(r.url)

输出:

https://api.mongolab.com/api/1/databases/db/collections/coll?q=10024&apiKey=mykey