Python新手求助:如何将'{x:=1, y=2, z=3}'字符串转为Python对象?
解决方法
你的字符串既不是标准JSON格式,也不是合法的Python字典字面量,所以json.loads()无法处理。可以按照以下步骤转换:
方法一:修正字符串格式后用安全解析工具
- 先把字符串里的
:=替换成:,再把剩下的=替换成:,将其转为合法的Python字典格式 - 使用
ast.literal_eval()解析(比eval()更安全,不会执行恶意代码)
示例代码:
import ast original_str = '{x:=1, y=2, z=3}' # 修正格式:先处理 := ,再替换 = 为 : fixed_str = original_str.replace(':=', ':').replace('=', ':') # 解析为Python字典 python_obj = ast.literal_eval(fixed_str) print(python_obj) # 输出: {'x': 1, 'y': 2, 'z': 3}
为什么json.loads()会报错?
JSON有严格的语法要求:
- 所有键必须用双引号包裹(比如
"x":1,而不是x:1) - 键值对之间只能用冒号
:分隔,不允许:=或=
你的字符串完全不符合这些规则,所以json.loads()无法识别。
内容的提问来源于stack exchange,提问作者the_tech_guy
相关产品推荐
相关产品推荐

