现有 str: {a: {b: '值 1', c: 0, d: '值 2', e: '1', f: []}
好像因为其中的 key 都没有引号,我用 eval() 和 ast.literal_eval() 都转换失败了
1
dongxiao 2019-09-03 16:14:29 +08:00 1
两种方式:
方式 1:你可以先对所有 key 进行赋值,然后使用 eval 方式 2:对 key 值进行添加引号后使用 eval (建议使用 json ) s = "{a: 'v', b: '值 1', c: 0, d: '值 2', e: '1', f: []}" for ele in re.findall("(\w+)\s*:", s): globals()[ele] = "\"" + ele + "\"" eval(s) Out[290]: {'"a"': 'v', '"b"': '值 1', '"c"': 0, '"d"': '值 2', '"e"': '1', '"f"': []} |