在Python

时间:2019-03-29 10:30:25

标签: python json

我有一个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中的字段名不能使用'-'。

1 个答案:

答案 0 :(得分:1)

使用字典。

json_obj = dict()

json_obj['weird-field'] = 621

my_weird_value = json_obj['weird-field'] # returns 621

print(json.dumps(json_obj))