在python中将字符串'{x:=1,y=2,z=3}'转换为JSON

fquxozlt  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(114)

我想把字符串'{x:=1, y=2, z=3}'转换成Python对象。我尝试了json.loads(),但是得到了一个错误,它期望字符串是'{"x":1, "y":2, "z":3}'
我是Python的新手,如果有人能帮助我,那就太好了。

bf1o4zei

bf1o4zei1#

您可能需要尝试自己解析该字符串:

def parse_input(x):
    result = dict()
    x = x.replace(":", "")
    for pair in x[1:-1].split(","):
        key,value = tuple(pair.split("="))
        result[key.strip()] = int(value.strip())
    return result

或者,您可以将字符串转换为有效的json,然后加载它:

obj = json.loads(data.replace("{", '{"').replace(":", "").replace("=", '":').replace(", ", ', "'))

如果你想要一个“有效”的邪恶解决方案,这里你去:

但是,仅当输入100%可信(因为它使用eval)时才使用此选项。此外,此选项仅适用于与示例完全匹配的输入。

obj = eval(data.replace("{", "{'").replace(":", "").replace("=", "':").replace(", ", ", '"))

相关问题