Самый быстрый способ вывести объект Python Dictionary (dict) в таблицу MySQL? - PullRequest
7 голосов
/ 10 апреля 2010

У меня есть объект dict. Я сбросил данные, используя это:

for alldata in data: # print all data to screen
    print data[alldata]

Каждое поле имело значения в скобках [] и None для значений NULLS и date.datetime для значений даты.

Как мне вывести этот dict в таблицу MySQL? Спасибо!

данные печати отображаются примерно так:

{'1': ['1', 'K', abc, 'xyz', None, None, None], '2': ['2', 'K', efg, 'xyz', None, None, None], '3': ['3', 'K', ijk, 'xyz', None, None, None]}

Как вставить эти данные в MySQL?

Ответы [ 3 ]

11 голосов
/ 10 апреля 2010

Если у вас установлено MySQLdb (mysql-python):

sql = "INSERT INTO mytable (a,b,c) VALUES (%(qwe)s, %(asd)s, %(zxc)s);"
data = {'qwe':1, 'asd':2, 'zxc':None}

conn = MySQLdb.connect(**params)

cursor = conn.cursor()
cursor.execute(sql, data)
cursor.close()

conn.close()
4 голосов
/ 27 июля 2011

этот пример очень хороший и более совместимый. http://code.activestate.com/recipes/457661-generate-sql-for-insertation-into-table-from-dicti/

1 голос
/ 14 июня 2017

Это возможный дубликат этого сообщения, или на него можно ответить Использование языка Python для оператора SQL INSERT

Однако, чтобы ответить на ваш вопрос, я разместил это на другом вопросе, и я также публикую его здесь:

def ins_query_maker(tablename, rowdict):
keys = tuple(rowdict)
dictsize = len(rowdict)
sql = ''
for i in range(dictsize) :
    if(type(rowdict[keys[i]]).__name__ == 'str'):
        sql += '\'' + str(rowdict[keys[i]]) + '\''
    else:
        sql += str(rowdict[keys[i]])
    if(i< dictsize-1):
        sql += ', '
query = "insert into " + str(tablename) + " " + str(keys) + " values (" + sql + ")"
print(query) # for demo purposes we do this
return(query) #in real code we do this

для словаря

tab = {'idnumber': 1, 'fname': 'some', 'lname': 'dude', 'dob': '15/08/1947', 'mobile': 5550000914, 'age' : 70.4}

мы получаем вывод, как показано на скриншоте ниже. Обратите внимание, что это простой пример, и он требует проверки работоспособности и может быть изменен для массовых обновлений (с использованием набора слов) и т. Д.

output of the code mentioned above

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...