У меня есть две следующие таблицы:
"table1":
a x1
b y1
"table2":
a x2
b y2
Я хочу открыть их и создать следующий словарь:
{"table1": {"a": ["x1"]}, {"b": ["y1"]}, \
"table2": {"a": ["x2"]}, {"b": ["y2"]}}
Для этого я в настоящее время делаю следующее:
with open("table1", "r") as table1, \
open("table2", "r") as table2:
dictionary = {"table1": {}, \
"table2": {}}
for line in table1:
col1 = line.split(" ")[0]
col2 = line.split(" ")[1].strip()
dictionary["table1"][col1] = col2
for line in table2:
col1 = line.split(" ")[0]
col2 = line.split(" ")[1].strip()
dictionary["table2"][col1] = col2
print(dictionary)
{'table1': {'a': 'x1', 'b': 'y1'}, 'table2': {'a': 'x2', 'b': 'y2'}}
Мой вопрос: как связать имя открытой таблицы, например table1, в строку словарного ключа "table1"?
Примерно так (не правильно):
with open("table1", "r") as table1, \
open("table2", "r") as table2:
dictionary = dict()
for table in [table1, table2]:
for line in table:
col1 = line.split(" ")[0]
col2 = line.split(" ")[1].strip()
dictionary[table][col1] = col2 # HERE I WANT table TO BE "table1", NOT THE OBJECT table1