Я хочу отсканировать текст и извлечь данные после определенного ключевого слова. В этом случае я сканирую файл sql
. Мой словарь будет иметь такую структуру (вложенную):
my_dict = {sql_file:{'select': table_name, 'join': table_name}}
У меня есть al oop, который проходит через файл sql, находит ключевое слово и извлекает таблицу для каждого файла в каталоге. Однако, поскольку мне нужно обновить словарь после сканирования для ключевого слова select
, затем вернитесь и обновите словарь для ключевого слова join
, обновление закончится перезаписью my исходные словарные значения. Вот как работает l oop.
for key, val in file_dict.items(): # I have a dictionary that has {filename:sql_script} for key,val
for match in select.finditer(val): # regex iterator to find all matches
if match.group(1):
my_dict[sql_file] = {'select': match.group(1)})
for key, val in file_dict.items(): # I have a dictionary that has {filename:sql_script} for key,val
for match in join.finditer(val): # regex iterator to find all matches
if match.group(1):
my_dict[sql_file] = {'join': match.group(1)})
Это не приводит к добавлению совпадений select
, затем добавлению совпадений join
, просто перезаписывает select
и заменяет его на join
. В словарях нет метода добавления, поэтому я не уверен, что делать дальше.