传参:phone_start = 17849550001
def generate_CsvNumber(self):
data = []
for _ in range(self.num_rows):
data.append([self.code_value, str(self.phone_start)])
self.phone_start += 1
结果报错:TypeError: can only concatenate str (not "int") to str
这事为啥请请教
self.phone_start 是一个整数类型的变量,str() 函数只能将字符串类型的变量转换为字符串,不能将整数类型的变量转换为字符串类型
data.append([self.code_value, str(self.phone_start)])
换成
data.append([self.code_value, f"{self.phone_start}"])
或者
data.append([self.code_value, "{}".format(self.phone_start)])
self.phone_start += 1
这里报错了
说明phone_start 你以为是int,其实是个str
不信你print(type(self.phone_start))看到底是什么类型
往前找,看哪一步把类型给改了
目录
TypeError: can only concatenate str (not "int") to str
根据错误信息可以看出,这个错误出现是由于不能将int类型的数据直接与str类型的数据拼接造成的。因此,我们需要将int类型的数据转换为str类型后再做拼接。
解决方案如下:
df_dict['GP']
转换为str类型,可以使用astype()函数实现,具体代码如下:df_dict['GP'] = df_dict['GP'].astype('str')
df_dict['ID'] = df_dict['CHEID'] + df_dict['GP']
至此,便完成了int类型与str类型的拼接操作。如果还有其他问题,可以根据错误信息对代码进行修改或debug。
完整代码如下:
df_dict['GP'] = df_dict['GP'].astype('str')
df_dict['ID'] = df_dict['CHEID'] + df_dict['GP']