Python 只能将str(而不是“tuple”)连接到str?如何去掉元组

Python 只能将str(而不是“tuple”)连接到str?如何去掉元组,python,tuples,Python,Tuples,我有这个uni项目,我相信我的问题是愚蠢的,但我不是程序员,我真的无法修复它,即使我读了关于这个主题的大多数问题。 这是我的代码: sql_cmd = "SELECT Offer.FirstName, Offer.PhoneNumber, Offer.PostCode, Offer.Product FROM Offer " Offer_from_db = executeSQLCommand (sql_cmd) Offer_table_html_st

我有这个uni项目,我相信我的问题是愚蠢的,但我不是程序员,我真的无法修复它,即使我读了关于这个主题的大多数问题。 这是我的代码:

        sql_cmd = "SELECT Offer.FirstName, Offer.PhoneNumber, Offer.PostCode, Offer.Product FROM Offer "
        Offer_from_db = executeSQLCommand (sql_cmd)
        Offer_table_html_string = ""

        for offer_record in Offer_from_db:
            Product = offer_record [0]
            Name = offer_record [1]
            PhoneNumber = offer_record [2]
            PostCode = offer_record [3]


            Offer_table_html_string += "<tr>" + "<td>" + str (Product) + "</td>","<td>"+ str(Name) +"</td>" ,"<td>"+  str (PhoneNumber) +" </td>", "<td>"+ str (PostCode) +" </td>"
sql\u cmd=“选择Offer.FirstName、Offer.PhoneNumber、Offer.PostCode、Offer.Product FROM Offer”
Offer_from_db=executeSQLCommand(sql_cmd)
Offer_table_html_string=“”
对于来自\u db的报价中的报价记录:
产品=报价\记录[0]
名称=报价记录[1]
PhoneNumber=优惠\记录[2]
邮政编码=优惠记录[3]
提供表格html字符串+=“+”+str(产品)+)、“+str(名称)+”、“+str(电话号码)+”、“+str(邮政编码)+”
我的错误日志显示

Error running WSGI application
TypeError: can only concatenate str (not "tuple") to str
File "/var/www/davidds_pythonanywhere_com_wsgi.py", line 505, in application
Offer_table_html_string += "<tr>" + "<td>" +  str (Product) + "</td>","<td>"+  str (Name) +"</td>" ,"<td>"+  str (PhoneNumber) +" </td>", "<td>"+  str (PostCode) +" </td>"
运行WSGI应用程序时出错 TypeError:只能将str(而不是“元组”)连接到str 文件“/var/www/davidds\u pythonanwhere\u com\u wsgi.py”,第505行,在应用程序中 提供表格html字符串+=“+”+str(产品)+)、“+str(名称)+”、“+str(电话号码)+”、“+str(邮政编码)+” 我还尝试:
Product=str(offer\u记录[0]),但它不起作用。请帮忙

您可以尝试以下方法:

Offer_table_html_string+=f“{str(产品)}{str(名称)}{str(电话号码)}{str(邮政编码)}”

您似乎想在您的
报价表\u html\u字符串中添加几个元素,对吗?因此,如果我正确理解你的意图,那么你想做的基本上是:

Offer_table_html_string += "<tr><td>" + str(Product) + "</td><td>" + str(Name) + "</td><td>" + str(PhoneNumber) + "</td><td>" + str(PostCode) + "</td>"
Offer\u table\u html\u string++=“产品”+“
提供表格html字符串+=“”+str(名称)+”
提供表格html字符串+=“”+str(电话号码)+”
提供表格html字符串+=“”+str(邮政编码)+”
现在,您当然可以一次性完成,但是您必须再次使用
+
连接html字符串的各个部分,而不是使用逗号,即

Offer_table_html_string+=(“”+
“+str(产品)+”+
“+str(名称)+”+
“+str(电话号码)+”+
“+str(邮政编码)+”
)
请注意,我是如何将整个字符串放在括号中的,这样我就可以将其拆分为几行,而不必担心换行

如果使用逗号分隔表的各个部分,则实际创建的是元组。因此:

Offer_table_html_string+=(“”+
“+str(产品)+”,
“+str(名称)+”,
“+str(电话号码)+”,
“+str(邮政编码)+”
)
同:

Offer_table_html_string+=(“某些产品”、“某些名称”,
"55512345", "56789")
这不起作用,因为右边是元组,而不是字符串。

Offer\u table\u html\u string+=“+”+“+str(产品)++”、“+str(名称)++”、“+str(电话号码)++”、“+str(邮政编码)+”
Offer_table_html_string += "<tr>" + "<td>" + str (Product) + "</td>","<td>"+ str(Name) +"</td>" ,"<td>"+  str (PhoneNumber) +" </td>", "<td>"+ str (PostCode) +" </td>"
程序认为您正在创建元组,因为表达式中的逗号位于任何字符串之外

我假设您需要一个HTML字符串,如
“…”
,所以您应该在整行中用+替换所有逗号

或者,您可以执行以下操作:

Offer_table_html_string += "<tr><td>" + str(Product) + "</td><td>" + str(Name) + "</td><td>" + str(PhoneNumber) + "</td><td>" + str(PostCode) + "</td>"
Offer\u table\u html\u string+='+str(产品)+'+str(名称)+'+str(电话号码)+'+str(邮政编码)+''

这应该适合您的需要

您的问题是由
之间的逗号(,)引起的。如果你想让逗号在字符串中,那么它应该在引号中,它现在在引号之外。在任何编辑器中查看语法突出显示的代码,甚至在您的问题中的StackOverflow上,都应该让您清楚这一点。只需将逗号放在引号内或将其完全删除即可

完全没有逗号:

Offer_table_html_string += "<tr>" + "<td>" + str (Product) + "</td><td>"+ str(Name) +"</td><td>"+  str (PhoneNumber) +" </td><td>"+ str (PostCode) +" </td>"
Offer\u table\u html\u string++++++++++str(产品)+++++++str(名称)+++++str(电话号码)+++++str(邮编)+”
引号中带逗号:

Offer_table_html_string += "<tr>" + "<td>" + str (Product) + "</td>,<td>"+ str(Name) +"</td>,<td>"+  str (PhoneNumber) +" </td>,<td>"+ str (PostCode) +" </td>"
Offer\u table\u html\u string+=“+”+str(产品)+”、“+str(名称)+”、“+str(电话号码)+”、“+str(邮编)+”
这两种方法都应该奏效。选择你实际想要做的任何一个。在你的行的中间,

<代码>“”,“”是一个元组(注意逗号构成元组,你不需要括号来得到一个)。您想要的是
+
而不是