import requests
consumer_key = 'IAqfvoioh1NRfvjAsCGqGP7W49w5yO5X'
Consumer_secret = 'bF6mdAS7Yj1nNsCi'
consumer_creds = f"{consumer_key}:{Consumer_secret}"
method = "GET"
version = {'version': 'v1'}
package = {'package':['discovery', 'accounts']}
resource = {'resource': "attractions"}
random = '/K8vZ9175BhV'
typee = 'json'
url = "https://app.ticketmaster.com/discovery/v2/attractions/K8vZ9175BhV.json?apikey=vPNhGwstALCFCwpCdzXjKGjGg0bQcEym4"
url_api = "https://app.ticketmaster.com/{package}/{version}/{resource}/{random}.{typee}?apikey=**{consumer_key}"
r = requests.get(url_api, data = version, params = package, headers = resource)
r.json()
valid_request = r.status_code in range(200, 299)
url_params = {'id': 'id'}
query_parama = {'locale':'en'}
我将其用作来源: https://developer.ticketmaster.com/products-and-docs/apis/discovery-api/v2/
我不确定如何解决
答案 0 :(得分:0)
首先,请接受esqew的建议。这已经足够长了,您可能应该只更改所有API凭据。
尽管如此……但是,除非您更改了资格,否则不要继续阅读:)
我猜您在使用url
时有效,而在您使用url_api
时无效,对吗? 400的响应表示它是poorly formed request。收到请求的服务器甚至无法弄清楚它的含义。
在这种情况下,您传入的是保存在url_api
中的字符串,而不实际替换您想要的值。除非我误读了某些内容,否则我认为params
和headers
不会像您期望的那样工作。至少现在,只需创建所需的URL并发出请求即可。
是这样的:
import requests
consumer_key = 'super_secret_key'
method = "GET"
version = "v1"
package = "discovery"
resource = "attractions"
random = 'K8vZ9175BhV'
data_type = 'json'
url_api = f"https://app.ticketmaster.com/{package}/{version}/{resource}/{random}.{data_type}"
print(f"Making request with URL: {url_api}")
r = requests.get(url_api, params={'apikey': consumer_key})
...
我首先使字符串成为f字符串,以便填充这些变量,然后使变量成为您要替换的字符串值。最初的目标是让请求填充这些变量吗?我最近从来没有使用过请求,所以也许有一种更优雅的方式来做到这一点。
请注意,打印声明不包含密钥。通过将其传递给参数,它将不会显示在控制台上。这让我想起...您确实更改了API密钥,对吗?!?!
我想再次指出,我有一段时间没有使用请求了。我希望我不要混淆任何语法或误解您在原始代码中的意图。