如何将列表中元组中的字节数组转换为字符串?

How to convert a bytearray in a tuple in a list to a string?

我正在尝试使用 python:

从我的 mysql 数据库中获取数据
import mysql.connector

myDB = mysql.connector.connect(
host = "<host>",
port = "<port>",
user = "<user>",
password = "<passwd>",
database = "<database>"
)

mycursor = myDB.cursor()

mycursor.execute("SELECT binaryValue FROM users")

myresult = mycursor.fetchall()

这会读取我的数据库中名为 binaryValue 的列,其中每一行都是“0”或“1”

当我打印出变量“myresult”时,它给了我一个列表,其中每个项目都是一个元组:

[(bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),), (bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),), (bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),)]

我需要为该列表中的每个项目获取一个包含“0”或“1”的字符串

我已在网上查看以尝试弄清楚如何执行此操作,但没有任何效果

提前致谢:)

你可以用列表推导来做到这一点 .decode():

a = [(bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),), (bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),), (bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),)]
[i[0].decode() for i in a]

输出:

['0', '0', '1', '0', '0', '1', '0', '0', '0', '1']

您可以使用 int 函数将字节数组转换为二进制值:

result = [(bytearray(b'0'),), (bytearray(b'0'),), (bytearray(b'1'),)]

out = []
for i in result:
    out.append(str(int(i[0], 2)))
print(out)

输出:

['0', '0', '1']