Python 3.x 在Python中将转义文本处理为字典
我有带字符串的文本日志,想把它们转换成字典Python 3.x 在Python中将转义文本处理为字典,python-3.x,escaping,Python 3.x,Escaping,我有带字符串的文本日志,想把它们转换成字典 log = """ {'details': "object={'id': 1}"} {'details': 'object={\'id\': 2}'} """ lines = log.strip().split("\n") for line in lines: dct = eval(line) print(f"{dct=}&
log = """
{'details': "object={'id': 1}"}
{'details': 'object={\'id\': 2}'}
"""
lines = log.strip().split("\n")
for line in lines:
dct = eval(line)
print(f"{dct=}")
第一行处理得很好,直到dct={'details':“object={'id':1}
我想处理{'details':“object={'id':2}}
的第二行,但得到的是SyntaxError:invalid syntax
错误
如何将带有\'
的字符串转换为字典?以下是解决方案:
log = r"""
{'details': "object={'id': 1}"}
{'details': 'object={\'id\': 2}'}
"""
lines = log.strip().split("\n")
for line in lines:
line = line.replace(r"\'", '"')
dct = eval(line)
print(f"{dct=}")
问题是:这个字符串不包含反斜杠<代码>打印(日志)查看。如果它确实包含反斜杠,那就好了。