использовать pymysql для вставки таблицы

Я разбираю один веб-сайт и хочу вставить его в MySQL. Для анализа каждого URL-адреса в определенном поле необходимо 6 полей. Кто-нибудь знает, как я могу использовать pymysql для превращения таблицы MySQL в объекты словаря в Python?

from bs4 import BeautifulSoup
import requests
import urllib.request
import pymysql

con = pymysql.connect(host = 'localhost',user = 'root',passwd = 'root',db = 'm_db')
cursor = con.cursor(pymysql.cursors.DictCursor)

with open(r"C:\New folder\urllist.txt") as f:
    urls = [u.strip('\n') for u in f.readlines()]
    page = 0
    while page < 5:
        try:
            soup = BeautifulSoup(requests.get(urls[page]).content, "html.parser")
            text = soup.select("head script[type=text/javascript]")[-1].text
            start = text.find('dataLayer = [') + len('dataLayer = [')
            end = text.rfind('];')
            rows = text[start:end].strip().split('\n')
        except:
            pass
        for d in rows:
            cursor.execute("INSERT INTO micro (d['brand'], d['productPrice'], d['SKU'], d['productID'], d['mpn'], d['ean'], ) VALUES (%s,%s,%s,%s,%s,%s)",(d['brand'], d['productPrice'], d['SKU'], d['productID'], d['mpn'], d['ean']))
            d = cursor.fetchall()
        con.commit()
        page = page + 1

Как я могу заполнить оператор вставки SQL данными, которые у меня есть. Вот данные, которые у меня есть

{
     'brand':'Fluke',
     'productPrice':'2199.99',
     'SKU':'34353362',
     'productID':'443329',
     'mpn':'RT-AC3200',
     'ean':'886290480914',
}

Выдает эту ошибку

Traceback (most recent call last): File "C:/PycharmProjects/untitled4/m_new.py", line 22, 
in <module> cursor.execute("INSERT INTO micro (d['brand'], d['productPrice'], d['SKU'], d['productID'], d['mpn'], d['ean'], ) VALUES (%s,%s,%s,%s,%s,%s)",(d['brand'], d['productPrice'], d['SKU'], d['productID'], d['mpn'], d['ean'])) 
TypeError: string indices must be integers

person Burak    schedule 09.11.2016    source источник
comment
Что происходит, когда вы запускаете этот код? Вывод? Что именно вы ищете?   -  person r0xette    schedule 09.11.2016
comment
@r0xette вот что получает Traceback (последний последний вызов): файл C:/PycharmProjects/untitled4/m_new.py, строка 22, в ‹module› cursor.execute(INSERT INTO micro (d['brand'], d[ 'productPrice'], d['SKU'], d['productID'], d['mpn'], d['ean'], ) ЗНАЧЕНИЯ (%s,%s,%s,%s,%s ,%s),(d['бренд'], d['productPrice'], d['SKU'], d['productID'], d['mpn'], d['ean'])) TypeError : строковые индексы должны быть целыми числами   -  person Burak    schedule 09.11.2016
comment
вы не читаете данные из mysql, поэтому ваш вопрос, как я могу использовать pymysql для превращения таблицы MySQL в объекты словаря, не имеет никакого смысла   -  person e4c5    schedule 10.11.2016


Ответы (1)


Ваш SQL-запрос неверен. Должен быть

cursor.execute("INSERT INTO micro (brand, productPrice, SKU, productID, mpn, ean) VALUES (%s,%s,%s,%s,%s,%s)",(d['brand'], d['productPrice'], d['SKU'], d['productID'],d['mpn'], d['ean']))
person r0xette    schedule 09.11.2016
comment
Все еще получаю ту же ошибку, TypeError: индексы строк должны быть целыми числами. - person Burak; 09.11.2016