TypeError: 'Response' object has no attribute '__getitem__'
TypeError: 'Response' object has no attribute '__getitem__'
我试图从字典中的响应对象中获取一个值,但我将 运行 保留在这个错误中,我认为你 __getitem__
更常用于索引类?
代码如下:
import json
import requests
from requests.auth import HTTPBasicAuth
url = "http://public.coindaddy.io:4000/api/"
headers = {'content-type': 'application/json'}
auth = HTTPBasicAuth('rpc', '1234')
payload = {
"method": "get_running_info",
"params": {},
"jsonrpc": "2.0",
"id": 0,
}
response = requests.post(url, data=json.dumps(payload), headers=headers, auth=auth)
print("respone is: ", response['result'])
响应 object 不是字典,您不能对其使用索引。
如果把APIreturns一个JSON response, you need to use the response.json()
method解码成一个Pythonobject:
data = response.json()
print("respone is: ", data['result'])
请注意,您也不必对请求 JSON 数据进行编码;您可以在此处使用 request.post()
方法的 json
参数;这也为您设置了 Content-Type header:
response = requests.post(url, json=payload, auth=auth)
最后但同样重要的是,如果 API 使用 JSONRPC 作为协议,您可以使用 jsonrpc-requests
project 为您代理方法调用:
from jsonrpc_requests import Server
url = "http://public.coindaddy.io:4000/api/"
server = Server(url, auth=('rpc', '1234'))
result = server.get_running_info()
只需像这样更改您的源代码:
response = requests.post(url, json=json.dumps(payload), headers=headers, auth=auth).json()
print("respone is: ", response['result'].encode('utf-8'))
确实不能单独索引响应对象,为此您需要 return json format
中的信息(以便解析响应信息),您可以使用 json()
和
这里为了获得正确的字符串,您必须使用 utf-8 对其进行编码(否则您的输出将类似于 -u'LikeThis)
我试图从字典中的响应对象中获取一个值,但我将 运行 保留在这个错误中,我认为你 __getitem__
更常用于索引类?
代码如下:
import json
import requests
from requests.auth import HTTPBasicAuth
url = "http://public.coindaddy.io:4000/api/"
headers = {'content-type': 'application/json'}
auth = HTTPBasicAuth('rpc', '1234')
payload = {
"method": "get_running_info",
"params": {},
"jsonrpc": "2.0",
"id": 0,
}
response = requests.post(url, data=json.dumps(payload), headers=headers, auth=auth)
print("respone is: ", response['result'])
响应 object 不是字典,您不能对其使用索引。
如果把APIreturns一个JSON response, you need to use the response.json()
method解码成一个Pythonobject:
data = response.json()
print("respone is: ", data['result'])
请注意,您也不必对请求 JSON 数据进行编码;您可以在此处使用 request.post()
方法的 json
参数;这也为您设置了 Content-Type header:
response = requests.post(url, json=payload, auth=auth)
最后但同样重要的是,如果 API 使用 JSONRPC 作为协议,您可以使用 jsonrpc-requests
project 为您代理方法调用:
from jsonrpc_requests import Server
url = "http://public.coindaddy.io:4000/api/"
server = Server(url, auth=('rpc', '1234'))
result = server.get_running_info()
只需像这样更改您的源代码:
response = requests.post(url, json=json.dumps(payload), headers=headers, auth=auth).json()
print("respone is: ", response['result'].encode('utf-8'))
确实不能单独索引响应对象,为此您需要 return json format
中的信息(以便解析响应信息),您可以使用 json()
和
这里为了获得正确的字符串,您必须使用 utf-8 对其进行编码(否则您的输出将类似于 -u'LikeThis)