1

私は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()
4

2 に答える 2