Я новичок в python, но после 3 дней чтения и поиска решения без успеха я теряюсь.for loop in for loop, python, csv reader/writer
У меня таблица mysql с данными (id, user_id ...). Я подключаюсь к db, читаю user_id и сохраняю данные в массиве «пользователь». Затем я открываю файл csv с большим количеством строк и столбцов (user_id, имя, почта, телефон, адрес ...). На следующем шаге я сравниваю, если user_id из db совпадает с user_id в файле csv. Если да, то я пишу эту строку в другом CSV-файле.
Проблема в том, что мой код работает только для первого id_user. Не могли ли вы помочь мне, пожалуйста?
Пример таблицы:
table in db:
id user_id
1 318604
2 318624
CSV файл:
318604; John; [email protected]
318604; 053746; USA
318624; Lucy; [email protected]
318624; 058839 Sweeden
318630; Luke; [email protected]
Ожидаемый результат в новом файле:
318604; John; [email protected]
318604; 053746; USA
318624; Lucy; [email protected]
318624; 058839 Sweeden
Код:
cur = con.cursor()
with open('input.csv', mode='rb') as f:
reader = csv.reader(f, delimiter=';')
with open('output.csv', mode='a') as w:
writer = csv.writer(w)
with con:
cur.execute("SELECT user_id FROM users")
user=cur.fetchall()
for i in range(len(user)):
for row in reader:
if(user[i][0]==row[0]):
writer.writerow(row)
con.close()
Спасибо, это работает как шарм! – djpiky
Если ответ работает на вас, отметьте его как [принято] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – ton1c