[英]Encode a list in ASCII in Python
我想用ASCII编码一个列表。
我的列表:
data = {u'ismaster': True, u'maxWriteBatchSize': 1000, u'ok': 1.0, u'maxWireVersion': 3, u'minWireVersion': 0}
我的目标:
data = {'ismaster': True, 'maxWriteBatchSize': 1000, 'ok': 1.0, 'maxWireVersion': 3, 'minWireVersion': 0}
目前,我这样做:
>>>data_encode = [x.encode('ascii') for x in data]
>>>print(data_encode)
['maxWireVersion', 'ismaster', 'maxWriteBatchSize', 'ok', 'minWireVersion']
请参阅网站以转换字符串列表
我用这种方法失去了一些价值。
字符串值前面的'u'表示该字符串已表示为unicode 。 这是一种比普通ASCII表示更多字符的方法。
如果字典中包含特殊字符,您将最终遇到问题
strangeKey = u'Ознакомьтесь с документацией'
表示为u'\О\з\н\а\к\о\м\ь\т\е\с\ь \с \д\о\к\у\м\е\н\т\а\ц\и\е\й'
asciirep = strangeKey.encode("ascii")
将引发此错误
SyntaxError: Non-ASCII character '\xd0' in ...
如果仍然需要,但有引发一些例外的风险,可以使用以下命令
从Python 2.7和3开始,您可以直接使用dict comprehension语法:
d = {key.encode("ascii"): value for (key, value) in data.items()}
在Python 2.6和更早版本中,您需要使用dict构造函数:
d = dict((key.encode("ascii"), value) for (key, value) in data.items())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.