【问题标题】:Python - print some data from responsePython - 从响应中打印一些数据
【发布时间】:2020-03-25 18:58:15
【问题描述】:

我正在提出请求:

import request in python:
url = "http://myweb.com/call" 
payload  = {} 
headers = {   'Content-Type': 'application/json',   'Token': '123456789' }

response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))

我正在接收并打印响应:

{"name":"Peter","LastName":JOHN,"RegDate":"2020-03-25T17:34:42.5306823Z","Number":7755}

但我希望打印语句仅显示“名称”和“编号”参数。不应打印整个响应。我该怎么做呢? 提前致谢。

【问题讨论】:

  • 请澄清问题到底是什么。你为什么要response.text.encode('utf8')
  • 我只知道这个命令来查看所有响应。还有其他方法吗?
  • 什么意思?你读过请求文档吗? import request in python: 是什么?

标签: python request response


【解决方案1】:

Response 是一个字典对象,因此您想使用这些值的键从该字典中打印两个值:

response_text = response.text.encode('utf8')
print(response_text['name'], response_text['Number'])

编辑:响应对象中的字典实际上比我最初理解的要深。

【讨论】:

  • TypeError: 'Response' 对象没有属性 'getitem'
  • TypeError: 字符串索引必须是整数,而不是 str
  • 在您显示为 response.text.encode('utf8') 的输出、字典和您报告的错误之间存在脱节。
  • 在访问响应中的密钥之前,他需要解码 JSON 数据:response_text = json.loads(response.text.encode('utf8'))
【解决方案2】:

你可以这样做:

import json

response = requests.request("POST", url, headers=headers, data = payload)
response_txt=json.loads(response.text.encode('utf8'))
print(response_txt['name'])
print(response_txt['Number'])

response.text.encode('utf8') 生成一个字符串,因此您需要导入 json 库并将该字符串转换为带有json.loads 的对象。然后您可以使用response_txt['name']response_txt['Number'] 访问密钥。

【讨论】:

  • 但响应总是随机的
猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 1970-01-01
相关资源
最近更新 更多