如何在没有 json 的情况下在 python 中获得 api 输出
how to get a apis output in python without json
这是api我正在尝试https://api.apithis.net/host2ip.php?hostname=google.com
如您所见,与 json api 不同,它没有可以复制为 response.json
的“”
@client.command()
async def host(ctx, host):
url = ('https://api.apithis.net/host2ip.php?hostname=' + host)
response = requests.get(url)
ipaddress = response.json()
embed = discord.Embed(title="IP for website" + host, color=0x00ffff)
embed.add_field(name="IP:", value=f'{ipaddress}', inline=True)
await ctx.send(embed=embed)
这是我当前的代码,如果有人能修复的话会有很大帮助,因为我不确定如何在没有 json 输出的情况下使用 apis 谢谢
您可以简单地使用 Response.text
属性
reponse = requests.get(url).text # e.g 0.0.0.0
首先,您得到的响应不是 JSON。如果你看到 response header
那么你可以看到它是
content-type: text/html; charset=UTF-8
.
现在它不是 JSON 您必须将其视为文本。
r = requests.get(url)
ipaddress = r.text if r.status_code == 200 else ''
这是api我正在尝试https://api.apithis.net/host2ip.php?hostname=google.com 如您所见,与 json api 不同,它没有可以复制为 response.json
的“”@client.command()
async def host(ctx, host):
url = ('https://api.apithis.net/host2ip.php?hostname=' + host)
response = requests.get(url)
ipaddress = response.json()
embed = discord.Embed(title="IP for website" + host, color=0x00ffff)
embed.add_field(name="IP:", value=f'{ipaddress}', inline=True)
await ctx.send(embed=embed)
这是我当前的代码,如果有人能修复的话会有很大帮助,因为我不确定如何在没有 json 输出的情况下使用 apis 谢谢
您可以简单地使用 Response.text
属性
reponse = requests.get(url).text # e.g 0.0.0.0
首先,您得到的响应不是 JSON。如果你看到 response header
那么你可以看到它是
content-type: text/html; charset=UTF-8
.
现在它不是 JSON 您必须将其视为文本。
r = requests.get(url)
ipaddress = r.text if r.status_code == 200 else ''