Я пытаюсь преобразовать файл * .tab в словарь. В файле 16 столбцов и 154 строки, включая заголовок. Строка заголовка и столбцы с 4 по 13 следует игнорировать. И ключом словаря является набор строк вроде ('tiger, cat')
Я попробовал уже существующее решение с кодом, но он показывает результат, который не соответствует ожиданиям. Вот первые несколько строк .tab файла
Word 1 Word 2 Human (mean) 1 2 3 4 5 6 7 8 9 10 11 12 13
love sex 6.77 9 6 8 8 7 8 8 4 7 2 6 7 8
tiger cat 7.35 9 7 8 7 8 9 8.5 5 6 9 7 5 7
tiger tiger 10.00 10 10 10 10 10 10 10 10 10 10 10 10 10
book paper 7.46 8 8 7 7 8 9 7 6 7 8 9 4 9
computer keyboard 7.62 8 7 9 9 8 8 7 7 6 8 10 3 9
computer internet 7.58 8 6 9 8 8 8 7.5 7 7 7 9 5 9
plane car 5.77 6 6 7 5 3 6 7 6 6 6 7 3 7
train car 6.31 7 7.5 7.5 5 3 6 7 6 6 6 9 4 8
telephone communication 7.50 7 6.5 8 8 6 8 8 7 5 9 9 8 8
Это код, который я использовал:
import csv
with open('set1.tab') as set1:
# skip the first line
next(set1)
list_of_dicts = list(csv.DictReader(set1, dialect='excel-tab'))
Ожидаемый результат должен быть: {('tiger', 'cat'): 7.35, ....}
Но вот мой фактический результат:
[OrderedDict([('love', 'tiger'),
('sex', 'cat'),
('6.77', '7.35'),
('9', '9'),
('6', '7'),
('8', '7'),
('7', '5'),
('4', '5'),
('2', '9'),
('', '')]),