You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用xmlrpc API后执行json.loads报错提示需传入字符串问题求助

问题原因

xmlrpc.client的ServerProxy调用远程接口后,会自动将返回的XML-RPC结构反序列化为Python原生数据类型,你这里api.listAddresses()返回的已经是dict类型,不是JSON字符串,不需要再调用json.loads()做解析。

你看到打印出来的内容长得像JSON,其实是Python字典的标准输出格式,和JSON字符串的核心区别是:Python字典默认用单引号包裹字符串,JSON规范要求必须用双引号,你打印结果里的'addresses'类单引号内容,已经可以证明它是字典而非JSON字符串。

解决方法

直接删掉jsonAddresses = json.loads(listAddress)这行代码即可,listAddress本身就是你需要的结构化数据,直接操作使用即可:

import xmlrpc.client
import json

from tkinter import *

app = Tk()
api = xmlrpc.client.ServerProxy("http://user:pass@localhost:8442/")

listAddress = api.listAddresses()
print(listAddress)
# 可直接读取字典内容,示例如下
for addr_item in listAddress['addresses']:
    print(addr_item['address'])

如果后续有需要将该字典转为JSON字符串的场景,可调用json.dumps(listAddress)实现转换。

内容的提问来源于stack exchange,提问作者Otsubosan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:54:01