application / json格式化后在python3中的请求

时间:2013-12-28 18:19:09

标签: json python-3.x python-3.3

DOWNVOTERS:发表评论并做出一些建设性的批评!我不知道这个问题有什么问题。

如何在python3中发出POST请求?

我正在尝试通过json-rpc获取谷歌加上一些网址,这是常见但非官方的方式。

我找到了这段代码,但我无法让它工作:

import urllib2, json

data = '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"%s","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]' % "http://stackoverflow.com"
url = "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ"
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
response = f.read()
f.close()

result = json.loads(response)

print int(result[0]['result']['metadata']['globalCounts']['count'])

文档也不是那么有用。我可以毫无问题地使用其他工具来执行请求,但不能在python3中执行。有什么提示吗?

1 个答案:

答案 0 :(得分:3)

如果你想做一些POST或其他HTTP请求,我可以建议出色的Requests库。

尝试这样的事情:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://URL.org", params=payload)
if r.status_code == 200:
  json = r.json()
else:
  json = None