我有一个 Python 字典列表。我遍历每个字典并检查给定的键是否存在。如果它确实存在,我检查这个键的值是否为空,如果它是空的,那么我需要在那个空键中保存另一个键的值。无法弄清楚如何将值从一个键分配给另一个键...
我的数据是这样的:
my_dicts = [{"Id": "123", "Campaign_Date": "2020-06-30", "Another_Date": "2020-07-01"}, {"Id": "125 ", "Campaign_Date": "", "Another_Date": "2020-07-01"}]
输出应该是这样的:
my_dicts = [{"Id": "123", "Campaign_Date": "2020-06-30", "Another_Date": "2020-07-01"}, {"Id": "125 ", "Campaign_Date": "2020-07-01", "Another_Date": "2020-07-01"}]
我尝试了以下方法:
for my_dict in my_dicts:
for key in my_dict.items():
campaign_key = 'Campaign_Date'
if key == campaign_key:
if value == "":
value = value["Another_Date"]
else:
continue
最佳答案
以防万一,如果您不想更新原始词典,同时对新词典进行必要的更正。
import copy
#my_dicts = [{"Id": "123", "Campaign_Date": "2020-06-30", "Another_Date": "2020-07-01"}, {"Id": "125", "Campaign_Date": "", "Another_Date": "2020-07-01"}]
# New input
my_dicts = [{"Id": "123", "Campaign_Date": "2020-06-30", "Another_Date": "2020-07-01"}, {"Id": "125", "Campaign_Date": "", "Another_Date": "2020-07-01"}, {"Id": "126", "Another_Date": "2020-07-01"}]
my_new_list = copy.deepcopy(my_dicts)
campaign_key = 'Campaign_Date'
for index, my_dict in enumerate(my_new_list):
# check if "campaign_key" key exists
if campaign_key in my_dict.keys():
# Check for empty or null value for key "campaign_key"
if my_dict[campaign_key] in ["", None]:
my_dict['Campaign_Date'] = my_dict["Another_Date"]
else:
# if key "campaign_key" doesn't exist delete that item from list
my_new_list.pop(index)
print(my_dicts)
print(my_new_list)
expected_output = [{'Id': '123', 'Campaign_Date': '2020-06-30', 'Another_Date': '2020-07-01'}, {'Id': '125', 'Campaign_Date': '2020-07-01', 'Another_Date': '2020-07-01'}]
if my_new_list == expected_output:
print("Success")
输出:
[{'Id': '123', 'Campaign_Date': '2020-06-30', 'Another_Date': '2020-07-01'}, {'Id': '125', 'Campaign_Date': '', 'Another_Date': '2020-07-01'}, {'Id': '126', 'Another_Date': '2020-07-01'}]
[{'Id': '123', 'Campaign_Date': '2020-06-30', 'Another_Date': '2020-07-01'}, {'Id': '125', 'Campaign_Date': '2020-07-01', 'Another_Date': '2020-07-01'}]
Success
关于python - 在for循环Python中的if语句中将一个键的值分配给另一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61146383/