CSVファイルをMYSQLデータベースに取得しようとしていますが、表示されません。私が何かを台無しにしたかどうかはわかりませんが、皆さんは見てみるべきです。
# its time for fetching data :)
import csv
import urllib2
path = 'C:\\Users\\User\\Desktop\\Downloads\\'
response = urllib2.urlopen('https://files.ontario.ca/opendata/births_by_year_and_month_per_place_of_event_city_2010_0.csv')
html = response.read()
file=open( path +"births.CSV", "r")
reader = csv.reader(file)
for row in reader:
print row
#Server Connection to MySQL:
import MySQLdb
conn = MySQLdb.connect(host= "localhost",
user="root",
passwd="admin",
db="cool")
x = conn.cursor()
try:
x.execute("""INSERT INTO import (test) VALUES (%s,%s,%s,%s)""",(row))
conn.commit()
except:
conn.rollback()
conn.close()
終了コード0で終わり、すべてを出力しますが、データベースに挿入することはありません。これがプリントのサンプルです
['2010', 'Sep', 'THUNDER BAY', '132']
['2010', 'Sep', 'TIMMINS', '59']
['2010', 'Sep', 'TORONTO', '3412']
['2010', 'Sep', 'WELLAND', '58']
['2010', 'Sep', 'WELLINGTON NORTH', '6']
['2010', 'Sep', 'WINDSOR', '337']
['2010', 'Sep', 'WOODSTOCK', '50']
Process finished with exit code 0
編集%sの部分がそれと関係があるかどうかはわかりませんが、助けが必要です。ありがとう!
編集2素晴らしい!私を助けてくれた皆さんに感謝します。しかし、今は新しい編集があり、何がうまくいかないのかわからないようです。これが新しいコードです!
import csv
import urllib2
path = 'C:\\Users\\hongyu\\Desktop\\Downloads\\'
response = urllib2.urlopen('https://files.ontario.ca/opendata/births_by_year_and_month_per_ place_of_event_city_2010_0.csv')
html = response.read()
file=open( path +"births.CSV", "r")
reader = csv.reader(file)
#Server Connection to MySQL:
import MySQLdb
conn = MySQLdb.connect(host= "localhost",
user="root",
passwd="admin",
db="cool")
for row in reader:
x = conn.cursor()
try:
x.execute("""INSERT INTO testing (year, month, city, num) VALUES (%s,%s,%s,%s)""", (row))
conn.commit()
except :
conn.rollback()
print(row)
print("This row failed to insert")
conn.close()
コードを実行すると、挿入に失敗した行がわかります。しかし、失敗した行がたくさんありました。結果の一部を次に示します。
['1994', 'Dec', 'KAPUSKASING', '10']
This row failed to insert
['1994', 'Dec', 'KENORA', '29']
This row failed to insert
['1994', 'Dec', 'KINCARDINE', '11']
This row failed to insert
['1994', 'Dec', 'KINGSTON', '198']
This row failed to insert
['1994', 'Dec', 'KIRKLAND LAKE', '13']
This row failed to insert
['1994', 'Dec', 'KITCHENER', '363']
This row failed to insert
['1994', 'Dec', 'LEAMINGTON', '31']
This row failed to insert
何か助けはありますか?データベースにはほとんどすべてが欠けています、そしてここにそれの少しがあります。http://prntscr.com/h6dhod PS:で始まる都市だけでなく、トロントもあります。
4つの値を挿入しようとしているため、列リストに4つの列名を含める必要があります。
x.execute("""INSERT INTO import (year, month, city, num) VALUES (%s,%s,%s,%s)""",(row))
列名をテーブル内の実際の列に置き換えます。
そして、この行はfor row in reader:
ループ内にある必要があります。これは、MySQL接続を開いた後でなければなりません。それ以外の場合は、ファイルの最後の行のみを挿入します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加