2017-06-06 71 views
0

我有一个词典列表和一个主词典。 词典列表具有以下格式。值被赋予一个在程序中动态变化的变量。根据另一个词典列表中的键值删除词典

list_dict = [{'url': url_value , 'title' : title_value}, {'url': url_value , 'title' : title_value}] 

main_dict = {"execution_time": "2017-06-05", "target_url": "http://www.bloomberg.com", "data": [{ "url" : url1}, { "url" : url2}], "name": "Michael", "occupation": "software"} 

如果任何URL值(URL1或URL2)根据数据main_dict是相同的值任何list_dict字典的URL_VALUE,我想删除该字典从数据。

输出:假设URL_VALUE是URL1则:

main_dict = {"execution_time": "2017-06-05", "target_url": "http://www.bloomberg.com", "data": [{ "url" : url2}], "name": "Michael", "occupation": "software"} 

我想过使用字典解析,但一切我试过没有工作。我希望有一个出发点或任何指导。

回答

0

这应该做的伎俩:

my_list = [list_dict_data['url'] for list_dict_data in list_dict] 
delete_list = [] 

for i in range(len(main_dict['data'])): 
    if main_dict['data'][i]['url'] in my_list: 
    delete_list.append(i) 

for i in delete_list: 
    del main_dict['data'][i] 

那么,它的作用是:

  1. 列出所有网址以list_dict
  2. 迭代通过所有URL检查主字典和比较它带有list_dict中的数据
  3. 将索引添加到删除列表中
  4. 迭代遍历删除列表并删除main_dict中的对应索引

尝试优化此操作,尽管它非常粗糙。

相关问题