У меня есть немного кода, который проходит через словарь и выводит значения из него в формате CSV. Странно, я получаю пару пустых строк, где весь вывод всех записей словаря пуст. Я прочитал код и не могу понять, есть ли что-нибудь кроме строки с запятыми могут быть выведены. Пустая строка должна содержать значения, поэтому дополнительная \ n не является причиной. Кто-нибудь может посоветовать, почему я получаю пустые строки? В других случаях я запускаю пропущенную строку появляется.
Недостающая строка:
6415, 6469, -4.60, clerical, 2, ,,,joe,030193027org,joelj,030155640dup
Использование python 2.6.5
Бит кода:
tfile = file(path, 'w')
tfile.write('Rec_ID_A, Rec_ID_B, Weight, Assigned, Run, By, On, Comment\n')
rec_num_a = 0
while (rec_num_a <= max_rec_num_a):
try:
value = self.dict['DA'+str(rec_num_a)]
except:
value = [0,0,0,'rejected']
if (value[3]!='rejected'):
weightValue = "%0.2f" % value[2]
line = value[0][1:] + ', ' + value[1][1:] + ', ' + weightValue \
+ ', ' + str(value[3]) + ', ' + str(value[4])
if (len(value)>5):
line = line + ', ' + value[5] + ',' + value[6] + ',' + value[7]
(a_pkey, b_pkey) = self.derive_pkeys(value)
line = line + a_pkey + b_pkey
tfile.write( line + '\n')
rec_num_a +=1
Пример вывода
6388, 2187, 76.50, clerical, 1, ,,,cameron,030187639org,cameron,030187639org
6398, 2103, 70.79, clerical, 1, ,,,caleb,030189225org,caldb,030189225dup
6402, 2205, 1.64, clerical, 2, ,,,jenna,030190334org,cameron,020305169dup
6409, 7892, 79.09, clerical, 1, ,,,liam,030191863org,liam,030191863org
6416, 11519, 79.09, clerical, 1, ,,,thomas,030193156org,thomas,030193156org
6417, 8854, 6.10, clerical, 2, ,,,ruby,030193713org,mia,020160397org
6421, 2864, -0.84, clerical, 2, ,,,kristin,030194394org,connou,020023478dup
6423, 413, 75.63, clerical, 1, ,,,adrian,030194795org,adriah,030194795dup