【发布时间】:2021-10-11 06:14:32
【问题描述】:
在我的 python 脚本中,我想做一个以 JSON 数组作为参数的 rpc 调用。
rpc.command(JSONarray1, JSONarray2, 0, true)
为了获取 JSONarray,我创建了以字典为元素的列表。字典将字符串作为键,将字符串或浮点数/整数作为值。
mylist1 =
[
{
'tixid': 'c1636efe3d85e3bb7e58663cfa976590ed1a9bb6740e7b851cbb34ab63f52ab9',
'vout': 2,
'sequence': 4294967293
},
...,
]
mylist2 =
[
{
'bc1q0eg3madqa38t5usru66nvjzgqkdc7qz9n9qemw': 0.0001
},
...,
]
当我将 mylist 传递给 rpc 调用时,我得到一个错误。 “值不是预期的字符串”
问题是,python 对 mylist 中的字符串使用单引号。 我知道,python 不在乎您是对字符串使用单引号还是双引号,但是我正在使用的 rpc 调用确实...
我尝试使用json.dumps(mylist)。
问题是 json.dumps() 返回一个 rpc 调用无法处理的字符串 - 需要 JSON 数组。将json.dump() 放入文件中并使用json.load()
我试过numpy.array(str_mylist)。但是 rpc 调用再次无法处理这个数组 - 需要 JSON 数组。
有什么建议可以“强制”我的 python 脚本对 mylist 中的字符串使用双引号吗?
【问题讨论】:
-
当你说:
json.dumps() returns a string which the rpc call can't handle,为什么它不能处理一个字符串?你已经说过你看到:"value is not a string as expected"当你传入一个列表时。 -
json.dumps() 将 mylist 作为字符串返回。并且字符串不能被 rpc 调用用作 json 对象。但是 rpc 调用可以处理 json 对象内的字符串
-
所有 JSON 值都是字符串;这就是 JSON:数据结构的字符串编码。
json.dumps(mylist)是正确的做法,如果 RPC 真的期望 JSON 对象数组作为其参数。你看过json.dumps(mylist)返回的值吗? -
您能否提供一个有效调用
rpc.command的示例?我希望你需要像rpc.command('[{"id": "...", "sequence": 12949, "out": 1, "in": 1.1}]')这样的东西,除非sequence、out和in也应该是字符串,而不是数字(正如 user10133842 所建议的那样)。 -
我会检查是否可以找到比特币 rpc.commands 的特定 python 文档...