オブジェクト/ dict(?)プロパティを新しいオブジェクト/ dictに展開するにはどうすればよいですか?
単純なJavascript:
const obj = {x: '2', y: '1'}
const thing = {...obj, x: '1'}
// thing = {x: '1', y: 1}
Python:
regions = []
for doc in locations_addresses['documents']:
regions.append(
{
**doc, # this will not work
'lat': '1234',
'lng': '1234',
}
)
return json.dumps({'regions': regions, 'offices': []})
Python> = 3.5 があった場合、dict
リテラルでキーワード拡張を使用できます。
>>> d = {'x': '2', 'y': '1'}
>>> {**d, 'x':1}
{'x': 1, 'y': '1'}
これは「スプラッティング」と呼ばれることもあります。
Python= 2.7を使用している場合は、同等のものはありません。これは、7年以上経過したものを使用する場合の問題です。次のようにする必要があります。
>>> d = {'x': '2', 'y': '1'}
>>> x = {'x':1}
>>> x.update(d)
>>> x
{'x': '2', 'y': '1'}
これを行うには、元のキーに基づいてdict
を作成し、新しいキー/オーバーライドされたキーの引数をアンパックします。
regions.append(dict(doc, **{'lat': '1234', 'lng': '1234'}))