如何将列表中元组中的字节数组转换为字符串?
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']
我正在尝试使用 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']