0

这是上下文:

  • 我有一个不能接受其 JSON 结构的部分更新的数据库。要修改一条记录,您必须读取整个 JSON 记录,进行修改,然后写回 JSON 记录,覆盖之前的 JSON 记录。

  • 我们会收到最终用户对这些 JSON 记录的更新。我们不会盲目相信用户提供了有效且完整的新 JSON 记录,因此我们检查他们的更新是否仅包含我们允许的字段名称。

所以,目标是这样说:

1: receive inbound JSON from user along with record id
2: grab the existing JSON from the database for that record id
3: for each fieldname in (a list of permitted fieldnames)
  4: if the fieldname is present in the inbound JSON
      5: add that field or update its contents to the existing JSON record
6: write the resulting JSON structure back to the database

我的问题是,实现步骤 3、4 和 5 的最 Pythonic 方式是什么?

我知道 Python 非常擅长这些事情,而且我看到过一些非常优雅的代码可以做类似的事情。

任何人都可以提出一种非常优雅和 Pythonic 的通用方法吗?

请注意,我只对 Python 3 感兴趣。

谢谢

4

1 回答 1

3
existing = {"a": 1, "b": 2, "c": 3}
inbound = {"b": 3, "c": 4, "d": 5}
permitted = {"a","b","c"}
existing.update((key, val) for (key, val) in inbound.items() if key in permitted)
于 2012-06-02T08:55:29.803 回答