使用“If”语句检查 JSON 数据 webhook 响应

Posted

技术标签:

【中文标题】使用“If”语句检查 JSON 数据 webhook 响应【英文标题】:Using an 'If' statement to check JSON data webhook response 【发布时间】:2021-04-02 16:50:19 【问题描述】:

我正在使用请求库并向 twitch api 发出请求。我已将数据过滤为变量,但我想知道是否有一种方法可以对变量使用“If”语句。数据以 JSON 格式存储。

编辑:我没有收到任何错误,但代码没有运行。

我的代码如下:


client = discord.Client()
token = open("token.txt", "r").read()
myclient = pymongo.MongoClient("mongodb url")
mydb = myclient["Cluster0"]
mycol = mydb["live"]

cursor = mycol.find( "type": "user" , '_id': 0, 'twitch': 1, 'channelID': 1)
for item in cursor:
    x = item.get('twitch')
    channelid = item.get('channelID')
    print(x)
    print(channelid)

headers = 
    'client-id': 'twitch client id',
    'Authorization': 'twitch ouath token',


params = (
    ('query', x),
)

response = requests.get('https://api.twitch.tv/helix/search/channels', headers=headers, params=params)

final = response.json()

finali = final['data'][0]['is_live']

finale = final['data'][0]['thumbnail_url']

finaly = final['data'][0]['title']

finalo = final['data'][0]['started_at']

print(final)

# I would like the If here, Eg. If finali == "True":
async def my_background_task():
    await client.wait_until_ready()
    counter = 0
    print("someone live")
    channel = client.get_channel(channelid)
    while not client.is_closed():
        counter += 1
        embedVar2 = discord.Embed(title="" + x + " is now live on Twitch!", description="" + finaly + "", url="https://twitch.tv/" + x + "", color=0x0C8BC2)
        embedVar2.set_image(url="" + finale + "")
        await channel.send("@everyone")
        await channel.send(embed=embedVar2)
        await asyncio.sleep(60) # task runs every 60 seconds

client.loop.create_task(my_background_task())
client.run('token')

【问题讨论】:

请将您的问题edit 发送至:更多细节或澄清问题,包括当前结果,包括预期结果。见How to Ask 【参考方案1】:

Finali 应该从该 json 中返回一个布尔值,因此您只需检查:if finali:,而不是测试 if finali == "True",它是 if finali == True,但更短。

所以答案是肯定的,您可以对这些变量使用 if 语句。

【讨论】:

嗨,If finali: 的语法无效 它是 `if` - 全部小写 - @Lemon.py 的评论有一个小错误。

以上是关于使用“If”语句检查 JSON 数据 webhook 响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中执行if语句来检查JSON数组是不是为空?

如何启用我的 html 页面以使用两个布尔字段值检查用户并使用“if”语句显示他们的数据?

json/js/html 测验:如何将 json 数据解析为 for 循环和 if 语句? [复制]

使用“!!”不是多余的吗?在 if 语句中,因为 if 语句已经检查了真假?

如何使用“if”语句检查退出状态

带有 JSON 的 Razor if 语句 [重复]