我正在尝试将以下 URL 结构提供给请求:
https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b&filters={"City":"Las Vegas","State":"NV"}
Run Code Online (Sandbox Code Playgroud)
我想将 URL 分解为参数,但我很难让过滤器部分正常工作。我最终使用了以下代码:
url = 'https://inventory.data.gov/api/action/datastore_search?' \
'resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b&' \
'filters={"City":"' + city + '","State":"' + state + '"}'
resp = requests.get(url=url)
print resp.url
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何修改它以处理类似的请求requests.get(url=url, params=params)
?
Thi*_*Not 11
这看起来像 JSON 数据。您可以使用json 模块将 Python 对象转换为 JSON 字符串:
import json
import requests
city = 'Las Vegas'
state = 'NV'
filters = {
'City': city,
'State': state
}
params = {
'resource_id': '8ea44bc4-22ba-4386-b84c-1494ab28964b',
'filters': json.dumps(filters)
}
response = requests.get('http://www.example.com/', params=params)
Run Code Online (Sandbox Code Playgroud)
这会向以下地址发送请求:
http://www.example.com/?filters=%7B%22City%22%3A+%22Las+Vegas%22%2C+%22State%22%3A+%22NV%22%7D&resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b
Run Code Online (Sandbox Code Playgroud)
在哪里
%7B%22City%22%3A+%22Las+Vegas%22%2C+%22State%22%3A+%22NV%22%7D
Run Code Online (Sandbox Code Playgroud)
是URL 编码版本
{"City": "Las Vegas", "State": "NV"}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10105 次 |
最近记录: |