Json.loads()字符串,表示具有unicode值的字典

时间:2018-08-28 14:49:20

标签: python json

我有一个命令行工具,可以接收代表字典的字符串并运行流量

  

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

但我希望可能会有更清洁的解决方案

0 个答案:

没有答案