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

问题描述 投票:1回答:2

我有一个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
python dictionary for-loop if-statement
2个回答
1
投票
for my_dict in my_dicts:
    for key in my_dict.items():
        campaign_key = 'Campaign_Date'
        if key == campaign_key:
            if value = "":
                my_dict['Campaign_Date'] = my_dict["Another_Date"] 
        else:
            continue

0
投票

不确定它是否在您正在运行的代码中,但是您提供的代码中有错误。

for my_dict in my_dicts:
    for key in my_dict.items():
        campaign_key = 'Campaign_Date'
        if key == campaign_key:
            if value = "": # This should be == otherwise you're assigning value to ""
                value = value["Another_Date"] # value["Another_Date"] Doesn't exist
                # Also this won't put the value into the dictionary
        else:
            continue
for my_dict in my_dicts:
    for key, value in my_dict.items():
        if key == 'Campaign_Date' and value == "":
           value = my_dict["Another_Date"]

请注意,这不会更新您的字典。为此,将value = my_dict["Another_Date"]替换为my_dict.update({'Campaign_Date':my_dict["Another_Date"]})

© www.soinside.com 2019 - 2024. All rights reserved.