Issue Image and expected output

J'ai du mal à convertir de la liste en chaînes distinctes en python. Voici le code utilisé pour obtenir les chaînes et l'exception:

Code:

mycursor.execute("SELECT fid,contents,input_type  FROM frame_report1")

myresult = mycursor.fetchall()
print myresult
# myresult --->[(449, u'text1', u'checkbox'), (454, u'text2', u'textbox'), (455, u'text3', u'textbox')]
print type(myresult)#list type
for x,x1,x2 in myresult:
    g = int(''.join(map(str, x))) #int type
    l = ''.join( x1) #string type
    k = ''.join( x2) #string type

Exception:

g = ''.join(map(str, x))
TypeError: argument 2 to map() must support iteration

Je souhaite convertir les valeurs de myresult en variables g, l et k.

EDIT: @Matt B: merci pour la réponse, j'ai utilisé le code mentionné par vous mais ce n'est pas utile, nous devons obtenir le contenu de la ligne 449, 454 455 dans un tableau de chaînes séparé, actuellement je me combine. veuillez guider, merci à l'avance, veuillez vérifier l'image ci-jointe Image montrant l'image du problème et l'image attendue.

Code:

myresult = [(449, u'text1', u'checkbox'), (454, u'text2', u'textbox'), (455, u'text3', u'textbox')]
row = 0
for x, x1, x2 in myresult:
    g = int(''.join(map(str, x)))  # int type

    l = ''.join(x1)  # string type
    k = ''.join(x2)  # string type
    rcount_general = self.tableWidget.rowCount()
    self.tableWidget.insertRow(rcount_general)
    r = 0
    for i in range(rcount_general + 1):
        self.tableWidget.setItem(row, 0, QtGui.QTableWidgetItem(g))
        self.tableWidget.setItem(row, 1, QtGui.QTableWidgetItem(l))
        self.tableWidget.setItem(row, 2, QtGui.QTableWidgetItem(k))        
        r = r + 1
    row = row + 1
0
Abhilash Pujari 15 mars 2019 à 12:54

2 réponses

Meilleure réponse

Il n'est pas nécessaire d'utiliser join, il vous suffit d'itérer à l'aide de l'énumération:

for row, result in enumerate(myresult):
    self.tableWidget.insertRow(self.tableWidget.rowCount())
    for col, value in enumerate(result):
        self.tableWidget.setItem(row, col, QtWidgets.QTableWidgetItem(str(value)))
1
eyllanesc 18 mars 2019 à 06:06

Est-ce ce que vous recherchez?

myresult = [(449, u'text1', u'checkbox'), (454, u'text2', u'textbox'), (455, u'text3', u'textbox')]

g = ''.join([str(x[0]) for x in myresult])
l = ''.join([str(x[1]) for x in myresult])
k = ''.join([str(x[2]) for x in myresult])

print(g)
print(l)
print(k)

Production:

449454455

text1text2text3

checkboxtextboxtextbox
0
Nordle 15 mars 2019 à 10:45