在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  數據庫/ 用python將txt文檔寫入MySQL數據庫遇到問題

用python將txt文檔寫入MySQL數據庫遇到問題

txt文檔的內容如下:
圖片描述

————
補充提問,代碼改進如下,仍然遇到問題:

import mysql.connector
conn = mysql.connector.connect(host='localhost', port=3306, user='root', password='999', database='test', charset='utf8')
cursor = conn.cursor()
f = open('/Users/helen/Documents/dump.txt', mode = 'r+')
while True:
    line = f.readline()
    if line:
        line = line.split(",")
        print(line)
        id = line[0]
        name = line[1]
        cursor.execute("insert into user2(id, name) values(%s,%s)", [id, name])
    else:
        break

f.close()
cursor.close()
conn.commit()
conn.close()

報錯內容:

['{\\rtf1\\ansi\\ansicpg936\\cocoartf1504\\cocoasubrtf830\n']
Traceback (most recent call last):
  File "/Users/helen/Documents/將txt寫入數據庫.py", line 16, in <module>
    name = line[1]
IndexError: list index out of range
回答
編輯回答
鹿惑

f.close() 前面加個空行

PS: 盡量少用 REPL
2017年3月30日 23:38
編輯回答
逗婦惱

臥槽,誰這么過分啊,不回答問題也就算了,還踩別人問題,心里是有多陰暗??

2018年9月11日 03:52
編輯回答
乞許

在 python 的交互解釋器里,一個 if for while 等這樣的語句塊被作為一條語句執(zhí)行,而你下面的 f.close() 和 while 不是同一個語句塊,你寫在一起,解釋器認為 f.close() 是 while 語句塊里面的,但縮進卻不對

2017年2月19日 12:10
編輯回答
不將就

語法問題,可能是縮進,中文字符,括號不匹配等問題,你用pylint檢查一下或者干脆重寫一遍

2017年6月9日 21:53
編輯回答
貓館
for i in open(yourfilename):
    id, name = i.strip().split(',')
    cursor.execute(yourcode)

或者用pandas直讀
再不行用navicat導入

2017年1月5日 17:09