У меня есть словарь, где item_dictionary[0]
соответствует data[0]
, а item_dictionary[1]
соответствует data[1]
.
item_dictionary = {'10350':'cat', '560':'dog'}
names = item_dictionary.values()
data = [[1, 2, 3, 4], [5, 6, 7]]
Я попытался записать элементы в data[0]
и data[1]
в разные файлы .csv следующим образом:
def writer(item):
q = data.index(item)
myfile = open('%r.csv', 'wb') % names[q]
wr = csv.writer(myfile)
wr.writerows(data[q])
myfile.close()
z = [writer(x) for x in data]
Это возвращает ошибку:
Трассировка (последний последний вызов):
Файл "", строка 1,
Файл "", строка 3, запись
TypeError: неподдерживаемые типы операндов для %: 'file' и ' стр'`.
Я предполагаю, что часть ошибки 'str'
состоит в том, что names[q]
возвращает, скажем, 'cat'
вместо cat
. Однако я не знаю, какой тип операнда использовать вместо этого, и не знаю, как обойти проблему str
, поэтому может ли кто-нибудь помочь мне? Спасибо.
.values()
является произвольным. Так что неверно, что item_dictionary[0] соответствует data[0], а item_dictionary[1] соответствует data[1] -- нетitem_dictionary[0]
. (Попробуйте и посмотрите — вы получите KeyError.) Существует отдельный упорядоченный тип словаря, но вы используете не его. - person DSM   schedule 04.11.2012