我有一个 python 脚本,它应该生成一个特定结构的 json 文件。因此,为了实现这一点,我的计划是创建代表这个 json 文件结构的实体数据类,构造它们,执行生成所需的所有魔法,然后将我的对象转储到 .json 文件中json.dumps(my_object)。现在我的问题是这个 json 结构有像weird-field:. 由于 python 语法,我无法在数据类中使用“破折号”符号,因此我无法创建代表我的 json 结构的实体类。(这个json文件会被另一个系统使用,所以我没办法改变结构。)现在我通过使用weird_fieldpython 接受的错误字段名称来解决它,然后在将它们编码为 json 后,我手动替换了 json 字符串中的那些错误字段名称。我想知道是否有更好的方法来做到这一点。在 java 中,您可以在类中的这些字段上使用特殊注释来说“嘿杰克逊,使用此字符串进行编码而不是类字段的名称”。执行相同操作的python 方法是什么?在代码中,我想做的是:@dataclassclass MyClass: weird-field: int = 0 # syntax error here json_obj = MyClass()json_obj.weird-field = 621print(json.dumps(json_obj))我想得到{ weird-field: 621}但是它崩溃了,因为 '-' 不能用于 python 中的字段名称。
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
使用字典。
json_obj = dict()
json_obj['weird-field'] = 621
my_weird_value = json_obj['weird-field'] # returns 621
print(json.dumps(json_obj))
添加回答
举报
0/150
提交
取消