python - 在python中将字节数组转换为字符串
问题描述
背景信息:我想在 sql 查询中将字符串作为参数传递:
sqlq="""select reaction_time from table5 where sessionID=%s"""
我的数据是字节数组的形式(这个 sessionID 也是从数据库中检索的)
{u'sessionID': bytearray(b'001f6340f7651db3e289d348de75f9bb')}
问题:如何将其转换为字符串,使其如下所示?'001f6340f7651db3e289d348de75f9bb'
解决方案
在 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'
推荐阅读
- html - 如何仅在禁用模式下更改 mat-form-field 的背景颜色?
- java - 出于商业目的在哪里发布可用的 maven 存储库中的工件?
- html - 如何将html中的这些内联样式转换为react?
- android - ImageReader.getPlanes() 返回异常:RGBA 覆盖 BLOB 格式缓冲区应具有高度 == 宽度
- java - Java 继承数组
- android - 为什么 Android BroadcastReceiver 不工作?
- flutter - Flutter:如何通过从值中搜索来从列表中获取索引?
- python - 无法加载检查点的数据
- elasticsearch - 可以将弹性中的字段映射限制设置为 50k 吗?
- laravel - Laravel whereColumn 在具有多个单词的列上