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

如何将含单引号字典的列表转换为RPC调用可用的双引号JSON数组

Python RPC调用传入JSON数组格式问题解决方案

首先明确一个基础认知:Python的字符串存储本身不存在单引号/双引号的差异,单双引号只是代码中定义字符串的语法差异,你在调试时看到的单引号只是Python的对象展示格式,不是字符串本身的属性,所以根本不存在“强制列表内字符串用双引号”的说法,你遇到的报错本质是参数的类型或序列化逻辑不符合RPC接口要求。

适配两种常见RPC参数要求的解决方案

情况1:RPC客户端要求传入原生Python序列(客户端内部自动完成JSON序列化)

这是绝大多数RPC封装库的默认要求,你之前直接传原生列表报错的原因和引号无关,优先排查两个点:

  • 检查字段值的类型是否符合接口要求:比如接口要求金额为字符串类型,你示例中mylist2的金额传了float类型就会触发类型报错
  • 注意Python的布尔值为大写True/False,不要误写为其他语言的小写true/false

如果确认结构和类型都没问题,可以通过先序列化再反序列化的方式得到完全JSON兼容的原生结构,再传入调用即可:

import json

# 序列化再反序列化,过滤所有Python特有的类型特性
compatible_list1 = json.loads(json.dumps(mylist1))
compatible_list2 = json.loads(json.dumps(mylist2))

# 执行调用
rpc.command(compatible_list1, compatible_list2, 0, True)

情况2:RPC调用要求传入JSON格式的数组字符串

如果你的RPC是命令行工具、或者明确要求传入JSON字符串作为参数,不要直接传原生列表,直接传入json.dumps的输出结果即可,注意不要额外给JSON字符串加包裹引号:

import json
import subprocess

# 生成标准双引号的JSON数组字符串
list1_json = json.dumps(mylist1)
list2_json = json.dumps(mylist2)

# 示例:调用命令行RPC工具
subprocess.run(
    ["rpc-cli", "send", list1_json, list2_json, "0", "true"],
    check=True
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:15:00