如果您的 Python 是 3.7+,您可以执行以下操作:
data = [{"color": -65536,
"touch_size": 0.21960786,
"touch_x": 831.25,
"touch_y": 1597.2656
},
{"color": -65536,
"touch_size": 0.20392159,
"touch_x": 1302.5,
"touch_y": 1496.0938
}]
fields_order = ["color", "touch_size", "touch_x", "touch_x_dp", "touch_y", "touch_y_dp"]
payload = []
for d in data:
entity = dict([(f, d.get(f)) for f in fields_order])
payload.append(entity)
print(payload)
# output: [{'color': -65536, 'touch_size': 0.21960786, 'touch_x': 831.25, 'touch_x_dp': None, 'touch_y': 1597.2656, 'touch_y_dp': None}, {'color': -65536, 'touch_size': 0.20392159, 'touch_x': 1302.5, 'touch_x_dp': None, 'touch_y': 1496.0938, 'touch_y_dp': None}]
对于 Python<3.7,您应该使用OrderedDict
:
from collections import OrderedDict
fields_order = ["color", "touch_size", "touch_x", "touch_x_dp", "touch_y", "touch_y_dp"]
payload = []
for d in data:
entity = OrderedDict([(f, d.get(f)) for f in fields_order])
payload.append(entity)
print(payload)