python - 将字典和列表值动态传递给 json 有效负载
问题描述
我有一个字典,其中表 ID 作为键,表名作为值,另一个列表具有对应于表刷新策略的字典列表。我正在尝试将字典值和列表元素动态传递给 JSON blob,然后将其传递给 API 发布请求,但看起来我正在向发布请求发送重复请求。
PS:这只是看起来像原始数据的示例数据。
d = {101: bh,
102: cy,
103: ui,
104: act}
l = [{'refresh_method': 'FULL'},
{'refresh_method': 'FULL'},
{'refresh_method': 'INCREMENTAL', 'refresh_field': 'updated_at'},
{'refresh_method': 'INCREMENTAL', 'refresh_field': 'updated_at'}]
for key, value in d.items():
for a in l:
payload = {
"entityType": "dataset",
"id": key,
"path": value,
"type": "PHYSICAL_DATASET",
"accelerationRefreshPolicy": {
"method": a['refresh_method'],
"refreshField": a['refresh_field'],
"neverRefresh": True,
"neverExpire": True,
},
}
resp = requests.requests('POST', url, json=payload)
当我打印有效负载时,我看不到第二个循环中的值。是因为两个循环吗?有更好的方法吗?
{'entityType': 'dataset', 'id': 101, 'path': ['db', 'public', 'bh'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'INCREMENTAL', 'refreshField': 'updated_at', 'neverRefresh': True, 'neverExpire': True}}
{'entityType': 'dataset', 'id': 102, 'path': ['db', 'public', 'cy'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'INCREMENTAL', 'refreshField': 'updated_at', 'neverRefresh': True, 'neverExpire': True}}
{'entityType': 'dataset', 'id': 103, 'path': ['db', 'public', 'ui'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'INCREMENTAL', 'refreshField': 'updated_at', 'neverRefresh': True, 'neverExpire': True}}
{'entityType': 'dataset', 'id': 104, 'path': ['db', 'public', 'act'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'INCREMENTAL', 'refreshField': 'updated_at', 'neverRefresh': True, 'neverExpire': True}}
预期结果:
{'entityType': 'dataset', 'id': 101, 'path': ['db', 'public', 'bh'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'FULL', 'refreshField':'', 'neverRefresh': True, 'neverExpire': True}}
{'entityType': 'dataset', 'id': 102, 'path': ['db', 'public', 'cy'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'FULL', 'refreshField': '', 'neverRefresh': True, 'neverExpire': True}}
{'entityType': 'dataset', 'id': 103, 'path': ['db', 'public', 'ui'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'INCREMENTAL', 'refreshField': 'updated_at', 'neverRefresh': True, 'neverExpire': True}}
{'entityType': 'dataset', 'id': 104, 'path': ['db', 'public', 'act'], 'type': 'PHYSICAL_DATASET', 'accelerationRefreshPolicy': {'method': 'INCREMENTAL', 'refreshField': 'updated_at', 'neverRefresh': True, 'neverExpire': True}}
如果我能在这里得到一些帮助,真的很感激。
解决方案
推荐阅读
- function - 结构嵌入、函数输入、多态性
- firebase - 如何使用 Nodemcu 将数据上传到 Firebase?
- ios - 如何在音频停止快速播放后自动更改按钮的背景图像?
- angular - 如果数字大于我分配的某个值,则显示“99+”
- python - 在python3的列表理解中使用if、elif和else
- java - 关于Spring框架中@Lazy注解的问题
- powershell - 将 System.Object 加载到 DataGrid 中
- c++ - 如何将 gmock 函数分配给特定的函数指针?
- javascript - 如何在其他 App Container - React Navigation 中获取参数?
- flutter - ListView 复选框被同时选中