簡體   English   中英

如何根據條件將第二個字典列表的鍵及其值添加到字典的第一個列表中

[英]How shall I add one of the key and its values of second list of dictionary to the first list of dictionary based on the condition

從下面的列表中,如果兩個列表中只有“文件名”匹配,我想將 list_b 中的“速度”添加到 list_a。 我新形成的 list_a 的輸出現在需要有 4 個鍵和它們各自的值。 這個怎么做?

第一個字典列表

list_a =[{'Filename': '20211004T102400622.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:00'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102400622.jpg'},
 {'Filename': '20211004T102403688.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:03'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403688.jpg'},
 {'Filename': '20211004T102403684.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:03'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403684.jpg'},
 {'Filename': '20211004T102406737.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:06'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102406737.jpg'},
 {'Filename': '20211004T102409773.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:09'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102409773.jpg'}]

第二個字典列表

list_b = [{'Filename': '20211004T102400622.jpg',
  'Speed': '0.3',
  'Time': '2021-10-04T10:24:00.622Z'},
 {'Filename': '20211004T102403684.jpg',
  'Speed': '0.2',
  'Time': '2021-10-04T10:24:03.684Z'},
 {'Filename': '20211004T102403688.jpg',
  'Speed': '0.2',
  'Time': '2021-10-04T10:24:03.688Z'},
 {'Filename': '20211004T102406737.jpg',
  'Speed': '0.0',
  'Time': '2021-10-04T10:24:06.737Z'},
 {'Filename': '20211004T102409773.jpg',
  'Speed': '0.1',
  'Time': '2021-10-04T10:24:09.773Z'}]

使用字典理解來創建字典filename_to_speed ,用於查找給定文件名的速度。 然后使用循環構建新列表。 首先檢查文件名是否存在於filename_to_speed中,否則添加一個值None

# I am guessing this is where Timestamp comes from.
# Or import it the same way you did in your code (not shown)
from pandas import Timestamp

list_a =[{'Filename': '20211004T102400622.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:00'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102400622.jpg'},
 {'Filename': '20211004T102403688.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:03'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403688.jpg'},
 {'Filename': '20211004T102403684.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:03'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403684.jpg'},
 {'Filename': '20211004T102406737.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:06'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102406737.jpg'},
 {'Filename': '20211004T102409773.jpg',
  'convertedDate': Timestamp('2021-10-04 10:24:09'),
  'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102409773.jpg'}]


list_b = [{'Filename': '20211004T102400622.jpg',
  'Speed': '0.3',
  'Time': '2021-10-04T10:24:00.622Z'},
 {'Filename': '20211004T102403684.jpg',
  'Speed': '0.2',
  'Time': '2021-10-04T10:24:03.684Z'},
 {'Filename': '20211004T102403688.jpg',
  'Speed': '0.2',
  'Time': '2021-10-04T10:24:03.688Z'},
 {'Filename': '20211004T102406737.jpg',
  'Speed': '0.0',
  'Time': '2021-10-04T10:24:06.737Z'},
 {'Filename': '20211004T102409773.jpg',
  'Speed': '0.1',
  'Time': '2021-10-04T10:24:09.773Z'}]


filename_to_speed = {dct['Filename'] : dct['Speed'] for dct in list_b}

list_new = []

for dct in list_a:
    if dct['Filename'] in filename_to_speed:
        dct['Speed'] = filename_to_speed[dct['Filename']]
    else:
        dct['Speed'] = None
    list_new.append(dct)

print(list_new)
# [{'Filename': '20211004T102400622.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:00'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102400622.jpg', 'Speed': '0.3'}, {'Filename': '20211004T102403688.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:03'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403688.jpg', 'Speed': '0.2'}, {'Filename': '20211004T102403684.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:03'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102403684.jpg', 'Speed': '0.2'}, {'Filename': '20211004T102406737.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:06'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102406737.jpg', 'Speed': '0.0'}, {'Filename': '20211004T102409773.jpg', 'convertedDate': Timestamp('2021-10-04 10:24:09'), 'path_name': '/content/drive/My Drive/train later/Continuous Running Time/Front Camera/20211004T102409773.jpg', 'Speed': '0.1'}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM