gpt4 book ai didi

python-2.7 - Python 类型错误 : can only concatenate list (not "str") to list

转载 作者:行者123 更新时间:2023-12-05 01:19:46 26 4
gpt4 key购买 nike

我有一个方法可以使用 Beautifulsoup 从 HTML 文件的标签返回文本列表。当我调用该方法时,我将从该方法返回的值保存到一个变量中。我认为是一个字符串变量。
我第二次调用该方法并将返回值存储到另一个字符串变量中。我想连接这两个字符串,以便我可以在换行符上打印每个字符串。然后,我可以将其添加到我的电子邮件例程中,以便它将值打印到电子邮件消息中。

我得到错误:

   Traceback (most recent call last):
File "E:/test_runners/selenium_regression_test_5_1_1/ClearCore - Regression Test/Email/email_selenium_report.py", line 43, in <module>
print rows_part1 + "/n" + rows_part2
TypeError: can only concatenate list (not "str") to list

我的方法实现是:

def extract_data_from_report3(filename):
html_report_part = open(filename,'r')
soup = BeautifulSoup(html_report_part, "html.parser")
th = soup.find_all('th')
td = soup.find_all('td')

headers = [header.get_text(strip=True) for header in soup.find_all("th")]
rows = [dict(zip(headers, [td.get_text(strip=True) for td in row.find_all("td")]))
for row in soup.find_all("tr")[1:-1]]
print(rows)
return rows

调用方法如下:

rows_part1 =  report.extract_data_from_report3(r"E:\test_runners\selenium_regression_test_5_1_1\TestReport\SeleniumTestReport_part1.html")
print "part1 = "
print rows_part1

rows_part2 = report.extract_data_from_report3(r"E:\test_runners\selenium_regression_test_5_1_1\TestReport\SeleniumTestReport_part2.html")
print "part2 = "
print rows_part2

print rows_part1 + "/n" + rows_part2

rows_part1 中的值为:

 part1 = 
[{u'Success': u'219', u'Skip': u'0', u'Error': u'9', u'Fail': u'1', u'Total': u'229', u'Class': u'Regression_TestCase.RegressionProject_TestCase2.RegressionProject_TestCase2'}]

rows_part2 中的值为:

 part2 = 
[{u'Success': u'21', u'Skip': u'0', u'Error': u'10', u'Fail': u'5', u'Total': u'230', u'Class': u'Regression_TestCase.RegressionProject_TestCase2.RegressionProject_TestCase2'}]

我想打印出 rows_part 1 的值,然后在换行符上打印出 rows_part2 的值。我将它串联起来,这样我就可以将一个变量放在电子邮件正文中,这将打印出值。

或者如何从列表中提取内容并将其附加到字符串变量?然后我可以打印出字符串变量。

最佳答案

首先,在 Python 中,您不必声明变量类型,它是在后台分配的。这让您对变量类型感到困惑。

returns a list

[...]

I think a string variable

您的 print 语句试图打印一个 list 类型的对象,然后是一个新行,然后是另一个 list 类型的对象。您的问题来自中间的“\n”。

连接两个字符串是可能的:str1 + str2

连接两个列表是可能的:list1.append(list2)

但是将字符串连接到列表(或将列表连接到字符串)不是!您需要做的是将您的列表对象转换为(该列表的)字符串。

print str(rows_part1) + "/n" + str(rows_part2)

应该可以。

关于python-2.7 - Python 类型错误 : can only concatenate list (not "str") to list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com