我有一个命令行工具,可以接收代表字典的字符串并运行流量
warp_cli -j'{“ warp_ip”:“ 172.18 ...
Robot Framework正在生成这些词典的一部分,并注入Unicode键u'TCP'
。如果将unicode键传递给字典,我会得到:
ValueError: No JSON object could be decoded
示例:
import json
streams = [
{
"burst_loop_count": "500",
"protocol": u"TCP",
"tcp_src_port": "10000",
},
{
"burst_loop_count": "500",
"protocol": u"TCP",
"tcp_src_port": "10000"
}
]
def _create_streams_arg(streams):
return str(streams).replace("'", '"')
print(json.loads(_create_streams_arg((streams))))
是否有办法:将str(x) or x.encode("ascii", "ignore")
映射到Streams
中的所有值,还是有办法让json.loads()
正确加载保存Unicode的内容?
我可以和它一起使用
def _encode(streams):
encoded = []
for stream in streams:
encoded.append({str(k): str(v) for k, v in stream.iteritems()})
return encoded
但我希望可能会有更清洁的解决方案