繁体   English   中英

Python MYSql.connector将不会插入数据

[英]Python MYSql.connector will not insert data

我正在尝试将一些数据插入正在制作的数据库中,但不会插入。 我确实在其他代码上使用了相同的insert方法,但它似乎仍然有效,但是此方法拒绝了。 救命!

from Bio import Entrez
from sys import exit
Entrez.email = "A.N.Other@example.com"     # Always tell NCBI who you are
sranumber = raw_input("Input SRA number here")
sranumber2= raw_input("re-type SRA number here")
while True:
    if sranumber != sranumber2:
         print "SRA numbers do not match"
         sranumber2 = raw_input("Please re-type sra number to match intitial sra number")
         continue   
    else:
        break
print "SRA ID:" + sranumber
#answer = raw_input("Are you sure this is the sra number you wish to use? Type Y/N")
while True:
    answer = raw_input("Are you sure this is the sra number you wish to use? Type Y/N")
    if answer == "Y":
        print "Let's do it!"
        break
    elif answer == "y":
        print "Let's do it!"
        break
    elif answer == "yes":
        print "Let's do it!"
        break
    elif answer == "YES":
        print "Let's do it!"
        break
    elif answer == "N":
        exit()
    else:
        print "Not a valid answer"
search = Entrez.esearch(term = sranumber, db = "SRA", retmode = "xml")
record = Entrez.read(search, validate = False)
newstuff = record
#print newstuff
for j in record:
    if j == "WarningList":
        newstuff = record['WarningList']
#print newstuff
poop = newstuff
for item in poop:
    if item == "OutputMessage":
        poop = poop['OutputMessage']
#print poop
crap = ['Wrong UID' + " " + sranumber]
cool =  "'"+crap[0]+"'"
#print cool
continuity = ''
for j in poop:
    if j  == 'No items found.' or j == cool:
        print "[-] This is not a valid SRA identity"
        continuity = 'done'
if continuity == 'done':
    exit()
print "[+] This is a valid SRA identity"
print "SRA ID:" + sranumber


condition = raw_input("Type in the condition of your ngs_data here")
condition2 = raw_input("re-type the condition of your ngs_data here")
print condition
while True:
    if condition != condition2:
        print "Conditions do not match!"
        condition2 = raw_input("Please retype condition here to match first condition")
    else:
        break
print "just dropped in to check on what condition my condition was in"
stuff = []
stuff.append(sranumber)
stuff.append(condition)
stuff2 = '+'.join(stuff)
print stuff2
stuff3 = stuff2.split('+')
print stuff3
experiment = [tuple(stuff3)]
print experiment
from mysql.connector import MySQLConnection, Error
from python_mysql_dbconfig import read_db_config

def insert_books(experiment):
    query = "INSERT IGNORE INTO organisms(sra#, condition) " \
                "VALUES(%s,%s)"

    try:
        db_config = read_db_config()
        conn = MySQLConnection(**db_config)

        cursor = conn.cursor()
        cursor.executemany(query, experiment)

        conn.commit()
    except Error as e:
        print('Error:', e)

    finally:
        cursor.close()
        conn.close()

def main():

    insert_books(experiment)

if __name__ == '__main__':
        main()

我最终只是以这种方式进行操作,终于成功了。 我不确定为什么以前不起作用,但是我认为它与我在各列中键入的格式有关。

from mysql.connector import MySQLConnection, Error
from python_mysql_dbconfig import read_db_config

cnx = mysql.connector.connect(user='root',password='*****',database = 'new')
cursor = cnx.cursor()
addstuff= ("INSERT IGNORE INTO experiment (`sra`, `condition`) VALUES(%s,%s)")
cursor.execute(addstuff,stuff3)
cnx.commit()
cursor.close()
cnx.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM