Hi guys,<div><br></div><div>I often run into the problem when I need to systematically rename a bunch of keys in a table. For example, a JSON API returns an object where I need to map "Media Cost" to "adjusted_partner_cost", "Impressions" to "bid_count", etc. One way of doing this is:</div>

<div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font class="Apple-style-span" face="'courier new', monospace">key_map = {</font></div><div>

<font class="Apple-style-span" face="'courier new', monospace">    'Media Cost': 'adjusted_partner_cost',</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    'Impressions': 'bids_won',</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">    'Day': 'date'</font></div><div><font class="Apple-style-span" face="'courier new', monospace">}</font></div><div><br>

</div><div><font class="Apple-style-span" face="'courier new', monospace">mykeys = {}</font></div><div><font class="Apple-style-span" face="'courier new', monospace">for k, v in dict_from_elsewhere.items():</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">  if k in key_map:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    ret[key_map[k]] = v</font></div><div>

<font class="Apple-style-span" face="'courier new', monospace">  else:</font></div><div><font class="Apple-style-span" face="'courier new', monospace">    ret[k] = <meta charset="utf-8">dict_from_elsewhere[k]</font></div>

</blockquote><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">I would love to be able to instead say something like:</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-family: arial; "><div>

<font class="Apple-style-span" face="'courier new', monospace">mykeys = defaultdict(lambda x:x, {</font></div></span></font></div><div><div style="font-family: arial; "><font class="Apple-style-span" face="'courier new', monospace">    'Media Cost': 'adjusted_partner_cost',</font></div>

</div><div><div style="font-family: arial; "><font class="Apple-style-span" face="'courier new', monospace">    'Impressions': 'bids_won',</font></div></div><div><div style="font-family: arial; ">
<font class="Apple-style-span" face="'courier new', monospace">    'Day': 'date'</font></div>
</div><div><div style="font-family: arial; "><font class="Apple-style-span" face="'courier new', monospace">})</font></div></div></blockquote><div style="font-family: 'courier new', monospace; "><br></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif">But default functions don't take parameters. Ideas?</font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif">- Andrey</font></div><div><meta charset="utf-8"><div style="font-family: arial; "><font class="Apple-style-span" face="'courier new', monospace"><br>

</font></div></div>