У меня есть два файла с ключом и значением. Я пытаюсь объединить их с соответствующими key
и value
. Ключи присутствуют в обоих файлах и value1
в file1
и value2
в file2
. Файлы имеют много столбцов и key
в обоих файлах в col[0] col[1]
Merge Dict Значение ключа
Я пытаюсь получить что-то вроде этого:
key value1 value2
Код:
from collections import defaultdict
d2 = {}
with open('file2.txt', 'r') as file2:
for row in file2:
cols = row.strip().split()
#print(cols);
key = cols[0], cols[1]
value1 = cols[4]
with open('file1.txt', 'r') as file1:
for row in file1:
cols = row.strip().split()
#print(cols);
key = cols[0], cols[1]
value2 = cols[2]
print ("%s %s %s %s\n" % (d2[cols[0]], d2[cols[1]], d2[cols[4]], d2[cols[2]]))
Error:
Traceback (most recent call last):
File "test_two.py", line 21, in <module>
print ("%s %s %s %s\n" % (d2[cols[0]], d2[cols[1]], d2[cols[4]], d2[cols[2]]))
KeyError: '3545' (first line)
Это должно быть 'd.items()'. –
Я использую Python 2.7, поэтому я использовал 'd.iteritems()', и это дает ошибку. – 2014-09-04 14:14:11
Ой! Это должно быть 'для строки в d'. Но так как ваш файл содержит только 3 столбца, вы получите 'IndexError' на' value2 = cols [4] '. –