python - 在for循环Python中的if语句中将一个键的值分配给另一个键

标签 python dictionary for-loop if-statement

我有一个 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/

相关文章:

python - Python中列表列表中的列表中的值的平均值

python - 模拟和猴子修补有什么区别?

python 搜索包含嵌套字典列表的字典

python - 字典值作为访问键时要调用的函数,不使用 "()"

python - 将值存储在一个 for 循环内的数组中

java - 为什么这个 for 循环不起作用?

python - 保存堆栈?

python - HTTP 错误 999 : Request denied

java - Spring hash Map 中有多个值的 Map

Java for 循环传递变量