我想把字符串'{x:=1, y=2, z=3}'转换成Python对象。我尝试了json.loads(),但是得到了一个错误,它期望字符串是'{"x":1, "y":2, "z":3}'。我是Python的新手,如果有人能帮助我,那就太好了。
'{x:=1, y=2, z=3}'
json.loads()
'{"x":1, "y":2, "z":3}'
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(", ", ", '"))
1条答案
按热度按时间bf1o4zei1#
您可能需要尝试自己解析该字符串:
或者,您可以将字符串转换为有效的json,然后加载它:
如果你想要一个“有效”的邪恶解决方案,这里你去:
但是,仅当输入100%可信(因为它使用eval)时才使用此选项。此外,此选项仅适用于与示例完全匹配的输入。