为了账号安全,请及时绑定邮箱和手机立即绑定

在python中使用自定义字段名称进行json编码

在python中使用自定义字段名称进行json编码

慕村9548890 2021-12-21 16:55:53
我有一个 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))


查看完整回答
反对 回复 2021-12-21
  • 1 回答
  • 0 关注
  • 261 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信