在mysql表中插入数据

时间:2019-04-06 13:54:58

标签: python mysql list

我需要在表中插入这些值,但是出现“操作数应包含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行。此文件放置在单词数组中。位置word [0]处的所有单词1,2,2被存储在surah中,而位置word [2]处的所有单词6,6,18被存储在诗歌中。

我想要这样的输出:

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

1 个答案:

答案 0 :(得分:0)

我想是这样的:

data=surah,verse,arr,var1

应该在哪里:

data = [surah, verse, arr, var1]

或者这个:

cursor.execute(sql,data)

应该在哪里:

sql = sql % data
cursor.execute(sql)