在Python 2.7中将任何数据类型的用户输入转换为str

时间:2015-04-30 19:51:08

标签: python string unicode encoding

所以我有一些用户输入(在Python中),可以是任何数据类型(int,str,unicode等),我需要转换为str类型。我遇到的问题是,如果所有输入都是字符串或unicode,那么我可以在输入上使用myVar.encode('utf-8', 'ignore'),但由于输入可能是一个int,这不起作用,因为ints don& #39; t有编码功能。

我已使用str(unicode(myVar, errors='ignore'))并且它已在我的本地计算机上运行,​​但我的生产环境会抛出错误:"TypeError: decoding Unicode is not supported",因此我需要使用其他方法。双重解决方案首先似乎是错误的。

为什么字符串编码总是如此混乱?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

(myVar if hasattr(myVar, 'encode') else str(myVar)).encode('utf-8', 'ignore')

如果变量具有encode属性,则它可能是字符串或Unicode对象,我们可以直接encode()。如果它没有,那么它可能是int,我们会在尝试str()之前将其转换为encode()