Python字节字符串在字典中打印不正确

真正的

考虑一个包含字节数据的列表(即['\ x03','\ x00','\ x32',...])

temp = b''

for c in field_data:
   temp += c
   print "%x" % ord(c)

上面的代码将所有字节正确地连接到temp(字节字符串文字)中。但是,当我将其添加到字典元素中时,在某些情况下输出不正确。

testdic = {'dd':temp}
print testdic

例如,列表中有0x0 0x0 0x0 0x0 0x0 0x0 0x33 0x32,并且第一个代码显示所有字节均已正确连接。但是当我紧接着执行第二个代码时,输​​出是这样的:

{'dd': '\x00\x00\x00\x00\x00\x0032'}

我不完全知道为什么会这样。

彼得·吉布森

当您打印时dict,它会打印括号{内容}表示形式

>>> b = b'\x00\x0f\xff'
>>> print b
>>> print repr(b)
'\x00\x0f\xff'
>>> print {'test':b}
{'test': '\x00\x0f\xff'}

编辑

数字0x33和0x32是字符“ 3”和“ 2”的ASCII值。repr会直接显示可打印的ascii字符,而\x00对不可打印的字符使用符号。

>>> b = b'\x33\x32'
>>> print b
32
>>> print repr(b)
'32'
>>> hex(ord('3'))
'0x33'

这是我用来打印字符串的十六进制表示形式的函数

>>> def hexstr(s):
...     return '-'.join('%02x' % ord(c) for c in s)
...
>>> hexstr(b'\x00\xff\x33\x32')
'00-ff-33-32'

如果您希望这种情况自动发生,则可以继承dict并覆盖该__str__表示形式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在字符串中打印不正确的字符数

来自分类Dev

存储在结构中的字符串打印不正确

来自分类Dev

3 字节字符的 MySQL 和 Python 字符串值不正确

来自分类Dev

Python字符串格式的值不正确

来自分类Dev

Python字符串的center()对齐不正确

来自分类Dev

Python 字符串格式不正确

来自分类Dev

日期字符串在SimpleDateFormat中的解析不正确

来自分类Dev

PHP与MySQl中的字符串比较不正确

来自分类Dev

PHP与MySQl中的字符串比较不正确

来自分类Dev

公式中的输入字符串格式不正确

来自分类Dev

不正确的JSON字符串

来自分类Dev

字符串格式不正确

来自分类Dev

字符串长度不正确

来自分类Dev

字符串格式不正确

来自分类Dev

Java字符串索引超出范围'}'标记不正确/无法正确打印

来自分类Dev

字节绝对字符串数组:为64位Windows编译时内容不正确

来自分类Dev

将格式不正确的字符串转换成字典?

来自分类Dev

输入的字符串在C#中的格式不正确,int值在格式中不正确

来自分类Dev

Python3.7和Windows:交互模式下文档字符串中的unicode字符不正确

来自分类Dev

处理“不正确的字符串值”

来自分类Dev

从MySQL修复不正确的字符串编码

来自分类Dev

malloc返回的字符串大小不正确

来自分类Dev

“输入字符串格式不正确”错误

来自分类Dev

整数和字符串不正确。

来自分类Dev

输入字符串的格式不正确#2

来自分类Dev

转换后的字符串格式不正确

来自分类Dev

Bukkit字符串读取不正确

来自分类Dev

索引到字符串时输出不正确

来自分类Dev

sql错误“输入字符串的格式不正确”