首页 > 解决方案 > 我不明白我必须将什么“版本”v 作为日期格式

问题描述

我正在使用 FOURSQUARE API 来提取场地搜索。我用我的 client_id 和 client_secret 创建了一个 URL。但我不知道我需要输入什么版本日期。

在此处输入图像描述

请检查图像中的错误。我在网上查了一下,但不是很明白。任何帮助将不胜感激。

标签: pythonfoursquare

解决方案


首先:

立即撤销并重新生成您的令牌,因为您刚刚将其发布到互联网上。

您的 URL 仅包含 3 个格式变量(计算{}格式字符串中的字符)

您试图将 4 个变量填充到包含 3 个孔的格式字符串中。

.format(
    venue_id, # gets placed in the url after client_id=
    CLIENT_ID,  # gets placed after client_secret=
    CLIENT_SECRET, # placed after v=
    VERSION  # placed nowhere because you don't have a 4th {} in the string.
)

您看到的错误结果显示您的 CLIENT_SECRET 版本无效。

您可能通过发布您的客户端密钥违反了他们的 TOS,这就是您应该撤销并重新生成的原因。

建议

使用命名格式字符串

如果您使用命名字符串,那么您将减少犯此类错误的机会,因为如果未传递必需的名称,您将得到错误,如果您额外传递,没问题,但您不会得到这个配置转移错误。

url = "https://<stuff>/client_id={client_id}&client_secret={client_secret}&v={version}".format(
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET,
    version=VERSION
)

或速记格式字符串,其中格式字符串中的变量是程序中的命名变量。

url = f"https://<stuff>/client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}&v={VERSION}"
#     ^
#-----| # f indicates this is an inline format string


推荐阅读