python - 在 Python3 中解析 JSON 响应

标签 python python-3.x curl

我的代码是:

self.ip = self.bot.get('https://icanhazip.com').content.rstrip().decode()

我想用https://ipinfo.io替换https://icanhazip.com,但我不知道如何提取 ip 返回:

$ curl "ipinfo.io"
{
  "ip": "xx.xx.xx.xx",
  "city": "",
  "region": "",
  "country": "xx",
  "loc": "xx.xxx.xx.xxx",
  "org": "xxxxxxx Communication Company (Private Joint Stock)"
}

最佳答案

不清楚您在 self.bot.get 中使用的是哪个 HTTP 库,但是对于通用库(其中 content 返回一个字符串),您可以解析使用 json.loads 手动处理 JSON 响应:

import json
# ...
ip = json.loads(self.bot.get('https://ipinfo.io').content).get('ip')

如果您使用 requests ,您可以直接使用 json() 读取 JSON 响应响应方法:

ip = self.bot.get('https://ipinfo.io').json().get('ip')

关于python - 在 Python3 中解析 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47518057/

相关文章:

python - ssh 与 winpexpect

python - 如何将模型从一个应用程序导入 Django 中的另一个应用程序?

python - Redis、Python 通过网络发送消息

使用 Tornado 的 SaltStack 上 8 上的 SSL 错误

curl - 为什么使用curl 发布密码时没有创建关系?

python - 分割线不丢失定界符

Python:更改来自函数参数的全局变量

使用 ptb : Same line logged twice but only one handler added 进行 Python 日志记录

python - 为什么在 python 中将集合初始化为 `{*()}` 比 `set()` 快?

python - Curl 在子进程中生成状态 400