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 に答える