Python中能否使用@符号作为JSON键?代码报错咨询
关于在Python中将@用作JSON键的问题解决办法
嘿,这个问题我来帮你搞定~你遇到的语法错误,核心原因是Python里的关键字参数不能以@开头——@是Python里装饰器的专用语法符号,直接写@test=test这种形式,解析器根本认不出这是合法的参数名,自然会报错。
不过别担心,JSON本身是支持用@作为键的,问题只出在你创建Python字典的方式上。这里给你两种可行的解决办法:
方法1:直接使用字典字面量(最推荐)
直接把键写成字符串形式的字典字面量,这样完全避开关键字参数的语法限制:
import json my_dict = {"@test": "test"} print(json.dumps(my_dict)) # 输出:{"@test":"test"}
方法2:用dict()构造函数的替代写法
如果你一定要用dict()来创建字典,可以传入包含键值对的列表,或者解包一个预定义的字典:
import json # 传入键值对列表 my_dict1 = dict([("@test", "test")]) print(json.dumps(my_dict1)) # 解包字典 my_temp_dict = {"@test": "test"} my_dict2 = dict(**my_temp_dict) print(json.dumps(my_dict2))
这两种写法都能得到你想要的JSON输出。
总结一下:JSON对键的字符限制很宽松,但Python的语法规则不允许关键字参数以@开头,所以只要换一种创建字典的方式,就能顺利生成带@键的JSON啦~
内容的提问来源于stack exchange,提问作者blue-sky
相关产品推荐
相关产品推荐

