Python 尝试将数字元组转换为字符串

Python 尝试将数字元组转换为字符串,python,Python,我试图在python上将一个数值元组转换并连接成一个字符串。我从一个角度控制器接收到这样的东西 data['permissions'] = (43,12,65,34,67) 然后我将其发送到model.py以将这些值连接为如下字符串: values = data['user'], ",'", str(data['permissions']), "'" 当我运行代码时,python控制台会显示一个错误,该错误可以隐式地将元组数组转换为str。我尝试了一些不同的方法来连接和转换元组: 这个 pe

我试图在python上将一个数值元组转换并连接成一个字符串。我从一个角度控制器接收到这样的东西

data['permissions'] = (43,12,65,34,67)
然后我将其发送到
model.py
以将这些值连接为如下字符串:

values = data['user'], ",'", str(data['permissions']), "'"
当我运行代码时,python控制台会显示一个错误,该错误可以隐式地将元组数组转换为str。我尝试了一些不同的方法来连接和转换元组:

  • 这个

    permissionsList = ','.join(data['permissions'])
    values = data['user'], ",'",permissionsList, "'"
    
  • 还有这个

    pointer = 0;
    values = int(data['user']),",'"
    for value in data['permissions']:
        if (pointer == 0):
           values += str(value)
           pointer += 1
        else:
           values += ','+str(value)
    

  • 并得到相同的错误。值应如下所示:
    34、'43,12,65,34,67'
    (我需要此格式来处理查询)。

    在尝试联接之前,需要先将元组中的每个项转换为字符串:

    ','.join(map(str, data['permissions']))
    

    map
    只需对元组中的每个项调用
    str

    必须将元组转换为列表,然后将列表中的元素从int转换为str。 下面是一个例子

    user = 45
    permission = (43, 12, 65, 34, 67)
    final = "{},'{}'".format(user, ','.join(str(p) for p in permission))
    print(final)
    
    输出将是

    45,'43,12,65,34,67'

    为您的案例编辑
    连接(str(i)表示(43,12,65,34,67)中的i)?目前,您似乎正在构建更多的元组,而不是字符串。您可以使用任何其他字符串,这些字符串应该在开始时作为项的分隔符<代码>,。join(…当您生成
    值时,字符串之间的逗号将不起作用,这只会生成另一个元组。
    列表中的“强制转换”是完全不必要的。覆盖
    权限的列表理解也是如此。只需使用
    ”,“。join(str(n)表示权限中的n)
    @juanpa.arrivillaga谢谢你的提示,我会更新我的答案,但是你仍然在使用
    列表(数据['permission'])
    为什么
    权限=[str(x)表示权限中的x]
    当你在做
    “,”。加入(str(p)表示权限中的p)
    在下一行?@juanpa.arrivillaga再次编辑,我忘了删除那个东西
    final = "{},'{}'".format(data['user'], ','.join(str(p) for p in data['permission']))