【问题标题】:conversion of bytearray into string in python在python中将字节数组转换为字符串
【发布时间】:2018-10-15 13:41:03
【问题描述】:

背景信息:我想在sql查询中传递一个字符串作为参数:

sqlq="""select reaction_time from table5 where sessionID=%s"""

我的数据是类似bytearray的形式(这个sessionID也是从数据库中获取的)

{u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')} 

问题:如何将其转换为字符串,使其如下所示? '001f6340f7651db3e289d348de75f9bb'

【问题讨论】:

    标签: python sql


    【解决方案1】:

    在 3.X 中:

    >>> d = {u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')}
    >>> my_string = d[u"sessionID"].decode()
    >>> my_string
    '001f6340f7651db3e289d348de75f9bb'
    

    你现在可能在想“我试过这个,但是因为我使用的是 Python 2.7,所以输出是 u'001f6340f7651db3e289d348de75f9bb'。我不希望前面有那个 'u'。我如何使它成为 8 位字符串,而不是 Unicode 字符串?”。 2.7 字节数组和 2.7 字符串之间的转换很简单——两种类型都是 8 位的,因此不需要解码。一个简单的str() 调用就足够了:

    C:\Users\Kevin\Desktop>py -2
    Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> d = {u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')}
    >>> my_string = str(d[u"sessionID"])
    >>> my_string
    '001f6340f7651db3e289d348de75f9bb'
    

    【讨论】:

    • 是的@Kevin 它适用于将一个 sessionID 转换为字符串。但是如果我有一个 sessionID 数组,那么如何转换这个数组。当我从另一个表中获取这些 sessionID 时。 (sqlselect = """SELECT DISTINCT sessionID FROM another_table""")
    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多