jakethesnake
jakethesnake

Reputation: 7

Won't store csv data into mysql table?

I have a csv file that I am loading which you can see linked below as well as the error output I am getting. I cannot figure out why this error is happening. Any help is appreciated.

def url_store():
        run_urlcrazy()
        url_file = open('url_csv')
        csv_reader = csv.reader(url_file)
        cursor = db.cursor()
        for row in csv_reader:
            cursor.execute("INSERT INTO scanresults(typotype,squatdomain, ip, id, domaincontact, mx, originaldomain, ipcontact) \
       VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", str(row))

    db.commit()
    cursor.close()

Error Screenshot

CSV file

Upvotes: 0

Views: 23

Answers (1)

Mike Scotty
Mike Scotty

Reputation: 10782

The query expects 8 parameters (indicated by (%s, %s, %s, %s, %s, %s, %s, %s)), however you only provide a single parameter, namely str(row).

If you're sure that row contains 8 string values, you can use

cursor.execute("INSERT INTO scanresults(typotype,squatdomain, ip, id, domaincontact, mx, originaldomain, ipcontact) \
   VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", *row)

or just go with

cursor.execute("INSERT INTO scanresults(typotype,squatdomain, ip, id, domaincontact, mx, originaldomain, ipcontact) \
   VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", (row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7]))

Upvotes: 1

Related Questions