我有一个python脚本,应该以特定的结构生成一个json文件。
因此,我的计划是创建代表此json文件结构的实体数据类,构造它们,进行生成所需的所有魔术,然后使用{{1}将我的对象转储到json文件中}。
现在我的问题是此json结构具有类似json.dumps(my_object)
的字段。由于由于python语法而无法在数据类中使用“破折号”符号,因此无法创建代表json结构的实体类。 (此json文件将由另一个系统使用,因此我无法更改结构。)
现在,我通过使用错误的字段名称(如weird-field:
)来解决该问题,该字段名称已被python接受,然后将它们编码为json后,我将这些错误的字段名称手动替换为json字符串。
我想知道是否有更好的方法。在Java中,您只需在类中的那些字段上使用特殊注释即可说“嗨,杰克逊,请使用此字符串进行编码,而不是使用类字段的名称”。 python做同样的事情是什么?
在代码中,我想做的是:
weird_field
我想得到
@dataclass
class MyClass:
weird-field: int = 0 # syntax error here
json_obj = MyClass()
json_obj.weird-field = 621
print(json.dumps(json_obj))
但是它崩溃了,因为python中的字段名不能使用'-'。
答案 0 :(得分:1)
使用字典。
json_obj = dict()
json_obj['weird-field'] = 621
my_weird_value = json_obj['weird-field'] # returns 621
print(json.dumps(json_obj))