cyc*_*e87 8 python json json-rpc python-requests
我试图从字典中的响应对象获取值,但我一直遇到这个错误,我认为你__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'])
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 12
响应对象不是字典,您不能对其使用索引.
如果API返回JSON响应,则需要使用该response.json()方法将其解码为Python对象:
data = response.json()
print("respone is: ", data['result'])
Run Code Online (Sandbox Code Playgroud)
请注意,您不必对请求JSON数据进行编码; 你可以json在request.post()这里使用方法的参数; 这也为您设置Content-Type标头:
response = requests.post(url, json=payload, auth=auth)
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的,如果API使用JSONRPC作为协议,您可以使用该jsonrpc-requests项目代理方法调用:
from jsonrpc_requests import Server
url = "http://public.coindaddy.io:4000/api/"
server = Server(url, auth=('rpc', '1234'))
result = server.get_running_info()
Run Code Online (Sandbox Code Playgroud)