Python不支持的操作数类型为+:'float'和'str

问题描述:

我正在写一个简短的脚本,用于获取有关主机的一些信息并将其写入Excel工作簿。我还在学习东西,所以没什么特别。 我得到了我需要的所有数据,并且可以写入大部分内容。 虽然我似乎无法得到一件事。 当尝试下面的代码:Python不支持的操作数类型为+:'float'和'str

hardwareSheet.write("B7", usage + "%") 

我可以打印出“用法”变量,但只有当我添加+“%”我不断收到以下错误:

TypeError: unsupported operand type(s) for +: 'float' and 'str' 

我使用xlsxwriter库来创建和编写excel。 hardwareSheet.write是一个命令,允许我将数据写入名为硬件的工作表中。 这里就是我得到了“使用”变量:

cpuInfo = wmi.Win32_Processor()[0] 
usage = float(cpuInfo.LoadPercentage) 

如果我不解析cpuInfo.LoadPercentage为float这将是一个字符串。 我GOOGLE了这一点,并认为我需要解析str到一个浮动,所以我这样做。任何想法可能是错误的?

+0

您不能将一个字符串添加到浮动。你的程序是否需要对'usage'进行算术运算?如果没有,请不要将它转换为浮动状态。 –

+0

为了什么目的,需要将'usage'解析为浮点数? – roganjosh

+0

@PM 2Ring - 是的,我对它做了一些算术运算,但在一个单独的函数中,所以我不必在全局变量中解析它。我现在明白了。干杯。 – davidb

你不能在python中添加浮动和字符串。 usage是一个浮点数。 "%"是一个字符串。

,你应该这样做:

str(usage) + '%' 
+0

好吧,我刚刚检查,我错了。 “用法”是一个整数。所以我需要把它改成一个字符串,对吗? – davidb

+1

好吧,现在就明白了。这是我的问题,改变它后,它的工作。谢谢。 – davidb

这是一种既可以得到相同的输出。

'{0}%'.format(usage)