2016-04-30 3 views
-2

http://pastebin.com/zTMwBKUnДобавление элементов в список в течение цикла - Вложенный цикл

У меня возникли проблемы при создании списка, который будет читать мою Джанго код. Это проблема python, но не django.

for line in reader: 
    date = datetime.datetime.strptime(line[0], '%m/%d/%Y').date() 

Каждая строка [0] должен быть включен в объект даты и, несмотря на параметры проверки в модели БД якобы позволяет ему, мне нужно, чтобы все пустые значения равным нулю, чтобы получить его импортировать.

for entry in line: 
     row = [] 
     entry = make_int(entry) 
     row.append(entry) 

Это выход:

['4/24/2016'] - This needs to be replaced with the 'date' vairable from pastebin 
['A320'] 
['623NK'] 
['LAX-ORD'] 
['1'] 
['4.4'] 
[0] 
[0] 
[0] 
[0] 
[0] 
['4.4'] 
['4.4'] 
[0] 
[0] 
[0] 
[0] 
[0] 
[0] 
[0] 
[0] 
[0] 

Вывод должен выглядеть следующим образом:

[date, A320, 623NK, LAX-ORD, etc... ] 

Так что это может быть прочитан следующим Джанго код:

# f = Flight(
    # date = date, 
    # aircraft = row[1], 
    # aircraft_ident = row[2], 
    # route = row[3], 
    # legs = row[4], 
    # duration = row[5], 
    # landings_day = int(row[6]), 
    # landings_night = row[7], 
    # night = row[8], 
    # instrument = row[9], 
    # approaches = row[10], 
    # cross_country = row[11], 
    # second_in_command = row[12], 
    # pilot_in_command = row[13], 
    # simulated_instrument = row[14], 
    # instructor = row[15], 
    # dual = row[16], 
    # remarks = row[17], 
    # simulator = row[18], 
    # solo = row[19], 
    # flight_cost = row[20], 
    # expenses = row[21], 
    # ) 

    # f.save() 
+0

Поместите свой код в вопрос, а не по внешней ссылке. И помните, это должно быть [mcve] –

ответ

0

Каждый раз, когда вы создаете новый массив для каждого элемента, так как вы объявили массив внутри внутреннего цикла, массив должен быть инициирован для каждого line, поэтому он должен быть внутри внешнего цикла, но снаружи внутреннего цикла.

for line in reader: 
    row = [] 
    date = datetime.datetime.strptime(line[0], '%m/%d/%Y').date() 
    row.append(date) 
    for entry in line[1:]: 
     entry = make_int(entry) 
     row.append(entry) 
Смежные вопросы