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