Краткое описание проблемы: я пытаюсь создать вложенный словарь Python с ключами, заданными предопределенными переменными и строками.И я заполняю словарь из регулярных выражений.Это в основном работает.Но я получаю сообщение об ошибке, потому что вложенный словарь - не основной - не любит, когда ключ имеет строку, он хочет целое число.Это смущает меня.Итак, я хотел бы спросить вас, ребята, как я могу получить вложенный словарь Python со строковыми ключами.
Ниже я расскажу вам о том, что я сделал.Что работает, а что нет.Начиная сверху:
# Regular expressions module
import re
# Read text data from a file
file = open("dt.cc", "r")
dtcc = file.read()
# Create a list of stations from regular expression matches
stations = sorted(set(re.findall(r"\n(\w+)\s", dtcc)))
Результат хороший и выглядит примерно так: station = ['AAAA', 'BBBB', 'CCCC', 'DDDD']
# Initialize a new dictionary
rows = {}
# Loop over each station in the station list, and start populating
for station in stations:
rows[station] = re.findall("%s\s(.+)" %station, dtcc)
Результат хороший и выглядит примерно так: row ['AAAA'] = ['AAAA 0.1132 0.32 P', ...]
Однако, когда я пытаюсь создать подпрограммусловарь со строковым ключом:
for station in stations:
rows[station] = re.findall("%s\s(.+)" %station, dtcc)
rows[station]["dt"] = re.findall("%s\s(\S+)" %station, dtcc)
Я получаю следующую ошибку.
"Ошибка типа: индексы списка должны быть целыми числами, а не str"
Не похоже, что я указываю второй ключ словаря как "dt".Если я вместо этого дам ему номер, он будет работать нормально.Но тогда имя моего словарного ключа - это число, которое не очень наглядно.
Есть мысли о том, как заставить это работать?