在mysql表中插入数据

问题描述 投票:-1回答:1

我需要在我的表中插入这些值,但我得到错误“操作数应该包含1列”

这是我的代码:

sample_text='E://ahmedrazatg.txt'
def stemming_text_1():

conn=pymysql.connect("localhost","root","root","wordnet",use_unicode=True, charset="utf8")
cursor=conn.cursor()
file_array=[]
file = open(sample_text,'r')
arr=[]
surah=[]
verse=[]
var1="ahmedraza"
for line in file.readlines():
        words=re.split(' |/|:|;|,|-RRB-|-LRB-|!|\*|\*\*|``',line)
        words=[line.replace(".","") for line in words]
        words=[line.replace("' '",'')for line in words]
        surah.append(words[0])
        verse.append(words[2])
        j=4

    while j<len(words):
        arr.append(words[j])
        sql="insert into cmp_translation1(surah_no,verse_no,translation,translator_id)values(%s,%s,%s,%s)"
        data=surah,verse,arr,var1
        r=cursor.execute(sql,data)
        j+=2  
 conn.commit()
 cursor.close()
 conn.close() 
stemming_text_1()

我的输入文件是这样的:

1 | 6 |直接指导我们

2 | 63 |当我们与你立约时

2 | 18 |聋哑人失明,他们无法转身

它有近400条线。这个文件放在单词数组中。所有位置单词[0]的单词1,2,2都存储在surah中,而位置单词[2]的所有单词6,63,18都存储在verse中。

我希望我的输出像这样:

translation_id|surah_no |verse_no |translation               |translator_id

1             |       1 |     6   |Guide us the straight way |ahmedraza

2             |       2 |    63   |We made covenant with you |ahmedraza

3             |       2 |      18 |Deaf dumb blind cannot tu |ahmedraza
python mysql list
1个回答
0
投票

我认为是这样的:

data=surah,verse,arr,var1

它应该在哪里:

data = [surah, verse, arr, var1]

或这个:

cursor.execute(sql,data)

它应该在哪里:

sql = sql % data
cursor.execute(sql)
© www.soinside.com 2019 - 2024. All rights reserved.