<p>您需要将这些空值转换为None或其他Python类型</p>
<p>假设您将空值切换为无</p>
<pre class="lang-py prettyprint-override"><code>data = {'workorder_id': '99999', 'properties': [{'id': '11', 'propertyType': {'id': '55834595398', 'name': 'action'}, 'stringValue': 'string01', 'nodeValue': None}, {'id': '22', 'propertyType': {'id': '55834595419', 'name': 'Tipo'}, 'stringValue': 'string02', 'nodeValue': None}]}
</code></pre>
<pre class="lang-py prettyprint-override"><code>def _handler(prepend: str, record: dict):
""" relabels keys with a prepended string """
d = {}
for key in record.keys():
new_key = '%s_%s' % (prepend, key)
d.update({new_key: record[key]})
return d
def mapper(data: dict):
""" returns a list of dictionaries. """
records= []
properties = data['properties']
for prop in properties:
_record = {'workorder_id': data['workorder_id'], }
for prop_key in prop.keys():
prop_data = {}
value = prop[prop_key]
if isinstance(value, dict):
prop_data.update(_handler(prop_key, value))
else:
prop_data.update({prop_key: value})
_record.update(_handler('property', prop_data))
records.append(_record)
return records
</code></pre>
<p>输出</p>
<pre><code>[{'workorder_id': '99999',
'property_id': '11',
'property_propertyType_id': '55834595398',
'property_propertyType_name': 'action',
'property_stringValue': 'string01',
'property_nodeValue': None},
{'workorder_id': '99999',
'property_id': '22',
'property_propertyType_id': '55834595419',
'property_propertyType_name': 'Tipo',
'property_stringValue': 'string02',
'property_nodeValue': None}]
</code></pre>