Init一个dict的namedtuple,它有一组稍微不同的键

2024-06-01 07:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个每天编写json文件的过程:

{
  "oldfield1": 1,
  "oldfield2": "a",
}

以及一个python脚本,它将这些文件读入单个对象

^{pr2}$

Tempora muntatur和更新的文件现在有一个额外的字段:

{
  "oldfield1": 3,
  "oldfield2": "f",
  "newfield": [1,2,3],
}

现在上面的代码由于以下错误而失败:

TypeError: __new__() got an unexpected keyword argument 'newfield'

我可以将newfield添加到MyRecord中,但它将在旧的文件上失败。

什么是最好的方法?

  1. 我可以将newfield添加到MyRecord和{a1}。

  2. 我能sanitize the dict

优先事项

  1. 我希望尽可能少做:最小化代码修改(这意味着选项1)。在
  2. 我还想最小化代码修改:当添加"futurefield"时,我希望,理想情况下,不必做任何事情(这意味着选项2)。在
  3. 最重要的是,我希望保持代码的可维护性(选项1?)在

就我个人而言,我更喜欢第一种方法。 不过,我很想听听人们的想法。


Tags: 文件对象方法代码脚本json过程选项