响应'对象不是可订阅的Python http post请求

tos*_*osh 8 python post json request

我正在尝试发布HTTP请求.我已经设法让代码工作,但我正在努力返回一些结果.

结果看起来像这样

{
  "requestId" : "8317cgs1e1-36hd42-43h6be-br34r2-c70a6ege3fs5sbh",
  "numberOfRequests" : 1893
}
Run Code Online (Sandbox Code Playgroud)

我试图获取requestId但我一直收到错误响应'对象不可订阅

import json
import requests

workingFile = 'D:\\test.json'

with open(workingFile, 'r') as fh:
    data = json.load(fh)

url = 'http://jsontest'
username = 'user'
password = 'password123'

requestpost = requests.post(url, json=data, auth=(username, password))

print(requestpost["requestId"])
Run Code Online (Sandbox Code Playgroud)

Fin*_*ood 25

response对象包含的信息远不仅仅是有效负载.要获取由POST请求返回的JSON数据,你必须访问response.json()所描述的例子:

requestpost = requests.post(url, json=data, auth=(username, password))
response_data = requestpost.json()
print(response_data["requestId"])
Run Code Online (Sandbox Code Playgroud)


Pie*_*ard 7

您应该将您的回复转换为字典:

requestpost = requests.post(url, json=data, auth=(username, password))
res = requestpost.json()
print(res["requestId"])
Run Code Online (Sandbox Code Playgroud)