试图将数字元组转换为字符串

时间:2017-01-09 16:58:09

标签: python

我正在尝试将数字元组转换并连接到python上的字符串中。我从Angular控制器那里收到类似的东西

arr[row-r][col-c]

然后我将它发送到data['permissions'] = (43,12,65,34,67) 以将这些值连接成一个字符串:

model.py

当我运行代码时,python控制台向我显示一个错误,可以隐式地将元组数组转换为str。我尝试了一些不同的方法来连接和转换元组:

  1. values = data['user'], ",'", str(data['permissions']), "'"
    
  2. permissionsList = ','.join(data['permissions'])
    values = data['user'], ",'",permissionsList, "'"
    
  3. 并得到同样的错误。值应该是这样的:pointer = 0; values = int(data['user']),",'" for value in data['permissions']: if (pointer == 0): values += str(value) pointer += 1 else: values += ','+str(value) (我需要这种格式来处理查询)。

2 个答案:

答案 0 :(得分:1)

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

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

map只需在元组中的每个项目上调用str

答案 1 :(得分:0)

你必须将元组转换为列表,然后将列表中的元素从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'

为您的案例编辑

final = "{},'{}'".format(data['user'], ','.join(str(p) for p in data['permission']))