#python #mysql
Вопрос:
Я пытаюсь преобразовать результат, полученный при выполнении инструкции SQL, в строку, так как выходные данные находятся в формате кортежа. Я новичок в программировании на Python, поэтому я нашел в Интернете код, который может преобразовать кортеж в строку, но когда я попробовал его, используя кортеж, полученный в результате выполнения инструкции SQL, результат остался неизменным. Не могли бы вы, пожалуйста, показать мне, как это сделать по назначению ? Ниже приведен код, который был использован:
import functools
import operator
import mysql.connector
mydb = mysql.connector.connect(
host='localhost',
user='root',
password='123456789',
port='3307',
database='magna'
)
def convertTuple(tup):
str1 = functools.reduce(operator.add, (tup))
return str1
#The converting function
mycusor = mydb.cursor()
mycusor.execute("SELECT Name FROM people WHERE ID =1")
para1 = mycusor.fetchall()
targ = para1
str2 = convertTuple(targ)
print(str2)
Результат, полученный из приведенного выше кода :
('Mike',)
Комментарии:
1. Можете ли вы поделиться примерами данных? Также вы переписываете встроенные типы (
tuple
иstr
). Используйте разные имена для этих переменных.2. Спасибо за совет @nocibambi , я включил их в редактирование.
Ответ №1:
para1
представляет собой список кортежей. Чтобы преобразовать каждый кортеж в строку, нам нужно преобразовать каждый элемент в кортеже в строку, а затем использовать str.join, чтобы объединить их в строку.
Использование карты
joined_str = ', '.join(map(str, tup))
или понимание списка
joined_str = ', '.join([str(elem) for elem in tup])
Если вы хотите превратить весь список в строку, вам нужно применить еще один слой соединения
joined_str = 'n'.join([', '.join(map(str, tup)) for tup in para1])
или
joined_str = 'n'.join([', '.join(str(elem) for elem in tup) for tup in para1])