私はpythonが初めてですが、3日間読んで解決策を見つけても成功しませんでした。
データ(id、user_id ...)を含むmysqlテーブルがあります。db に接続し、user_id を読み取り、データを配列「user」に保存します。次に、多くの行と列 (user_id、名前、メール、電話、住所など) を含む csv ファイルを開きます。次のステップでは、db の user_id が csv ファイルの user_id と一致するかどうかを比較します。答えが「はい」の場合、この行を別の csv ファイルに書き込みます。
問題は、私のコードが最初の id_user に対してのみ機能することです。助けてくれますか?
表の例:
table in db:
id user_id
1 318604
2 318624
csv ファイル:
318604; John; john@gmail.com
318604; 053746; USA
318624; Lucy; Lucy@gmail.com
318624; 058839 Sweeden
318630; Luke; Luke@gmail.com
新しいファイルで期待される結果:
318604; John; john@gmail.com
318604; 053746; USA
318624; Lucy; Lucy@gmail.com
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()