python数据类型错误

传参: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))看到底是什么类型
往前找,看哪一步把类型给改了

  • 这篇文章:python报错:can only concatenate str (not “int“) to str 也许有你想要的答案,你可以看看
  • 除此之外, 这篇博客: TypeError: can only concatenate str (not “int“) to str中的 TypeError: can only concatenate str (not "int") to str 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 目录

    TypeError: can only concatenate str (not "int") to str

    问题:

    解决:

    #其他示例

    完整错误:


  • 以下回答由chatgpt基于相关博客总结生成:

    根据错误信息可以看出,这个错误出现是由于不能将int类型的数据直接与str类型的数据拼接造成的。因此,我们需要将int类型的数据转换为str类型后再做拼接。

    解决方案如下:

    1. 将代码中的 df_dict['GP'] 转换为str类型,可以使用astype()函数实现,具体代码如下:

    df_dict['GP'] = df_dict['GP'].astype('str')

    1. 进行拼接操作,具体代码如下:

    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']