python - Python中的字段替换
问题描述
我有以下代码和输出数据。
json_rdd = data.toJSON().collect()
json_ls = [json.loads(x) for x in json_rdd]
[{'status': 'Yes', 'rec_id': {'oid': '5d9f5434523b7e0719'}, 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Yes', 'rec_id': {'oid': '5d9f5434523b7e071a'}, 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Take', 'rec_id': {'oid': '5d9f9f13523b7e0d89'}, 'lot_number': 'db53-4420-887f-0e9bb1364e2e'},
{'status': 'Take', 'rec_id': {'oid': '5d9f9f14523b7e0d8a'}, 'lot_number': 'db53-4420-887f-0e9bb1364e2e'}]
我需要像下面这样更改上述数据(oid 应该更改为 rec_id),有人可以帮我怎么做吗?
[{'status': 'Yes', 'rec_id': '5d9f5434523b7e0719', 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Yes', 'rec_id': '5d9f5434523b7e071a', 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Take', 'rec_id': '5d9f9f13523b7e0d89', 'lot_number': 'db53-4420-887f-0e9bb1364e2e'},
{'status': 'Take', 'rec_id': '5d9f9f14523b7e0d8a', 'lot_number': 'db53-4420-887f-0e9bb1364e2e'}]
解决方案
只需遍历列表json_ls
并为每个项目(这是一个字典,让我们称之为d
), set d['rec_id'] = d['rec_id']['oid']
。
json_ls = [
{'status': 'Yes', 'rec_id': {'oid': '5d9f5434523b7e0719'}, 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Yes', 'rec_id': {'oid': '5d9f5434523b7e071a'}, 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Take', 'rec_id': {'oid': '5d9f9f13523b7e0d89'}, 'lot_number': 'db53-4420-887f-0e9bb1364e2e'},
{'status': 'Take', 'rec_id': {'oid': '5d9f9f14523b7e0d8a'}, 'lot_number': 'db53-4420-887f-0e9bb1364e2e'},
]
for d in json_ls:
d['rec_id'] = d['rec_id']['oid']
assert json_ls == [
{'status': 'Yes', 'rec_id': '5d9f5434523b7e0719', 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Yes', 'rec_id': '5d9f5434523b7e071a', 'lot_number': '8be4-400d-a0c7-7214132dfd48'},
{'status': 'Take', 'rec_id': '5d9f9f13523b7e0d89', 'lot_number': 'db53-4420-887f-0e9bb1364e2e'},
{'status': 'Take', 'rec_id': '5d9f9f14523b7e0d8a', 'lot_number': 'db53-4420-887f-0e9bb1364e2e'},
]
推荐阅读
- python - Sublime Text 3:所有下拉选项都会导致空白选项卡
- ruby-on-rails - 用偏执的 gem 调用一个软删除的对象来 real_destroy
- c# - 为什么 Microsoft.AspNetCore.OData 打破了我的 Swagger?
- java - 按值对 HashMap 进行排序并转换为新 Map
- r - 点大小表示值时如何更改点大小的范围
- python-3.x - 嵌入到 def 中时,参数不会传递到我的 scipy.optimize.minimize 函数中。他们不断返回“未定义”
- r - 基于附件数据框选择变量的自动预测模型拟合
- c# - 具有最小值最大值的属性
- javascript - 在类中使用 bind()
- c - 如何使用 C 应用程序访问 FreeDOS 中的全部内存空间