Вставка данных в таблицу MySQL - PullRequest
0 голосов
/ 06 апреля 2019

Мне нужно вставить эти значения в мою таблицу, но я получаю сообщение об ошибке «Операнд должен содержать 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, хранятся в суре, тогда как все слова в словах местоположения [2], что составляет 6,63,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 голосов
/ 09 апреля 2019

Я думаю, что это так:

data=surah,verse,arr,var1

где и должно быть:

data = [surah, verse, arr, var1]

или это:

cursor.execute(sql,data)

где и должно быть:

sql = sql % data
cursor.execute(sql)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...