-2
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/

我不确定如何解决它

4

1 回答 1

0

首先,请听取esqew的建议。这已经足够长的时间了,您可能应该只更改所有 API 凭据。

关于这个问题......但除非你改变了你的信用,否则不要继续阅读:)

我猜你url什么时候用,什么时候用url_api不,对吧?400 响应意味着它是一个格式不正确的请求。接收请求的服务器甚至无法弄清楚它的含义。

在这种情况下,您传递的是保存的字符串,url_api而没有实际替换您想要的值。除非我误读了某些内容,否则我认为paramsand不会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 字符串,以便填充这些变量,然后将变量设为您要替换的字符串值。您最初的目标是让请求填充这些变量吗?我最近根本没有使用请求,所以也许有一种更优雅的方式来做到这一点。

请注意,打印语句不包括 key。通过将其传递给 params,它将不会显示在控制台上。这让我想起了……你确实改变了你的 API 密钥,对吧?!?!

我想再次指出,我有一段时间没有使用请求了。我希望我没有混淆任何语法或误解您在原始代码中的目的。

于 2020-07-23T22:04:15.680 回答