列表的模板是:
EmployeeList = [u'<EmpId>', u'<Name>', u'<Doj>', u'<Salary>']
我想从此转换
EmployeeList = [u'1001', u'Karick', u'14-12-2020', u'1$']
到此:
EmployeeList = ['1001', 'Karick', '14-12-2020', '1$']
转换后,我实际上正在检查EmployeeList.values()中是否存在“1001”。
答案 0 :(得分:49)
将列表中的每个值编码为字符串:
[x.encode('UTF8') for x in EmployeeList]
您需要选择有效的编码;不要使用str()
,因为它将使用系统默认值(对于Python的ASCII),它不会对Unicode值中的所有可能代码点进行编码。
UTF-8能够编码所有Unicode标准,但ASCII范围之外的任何代码点都会导致每个字符有多个字节。
但是,如果您只想测试特定字符串,请测试 unicode 字符串,并且Python在测试时不必自动编码所有值:
u'1001' in EmployeeList.values()
答案 1 :(得分:19)
[str(x) for x in EmployeeList]
会进行转换,但如果unicode字符串字符不在ascii范围内,则会失败。
>>> EmployeeList = [u'1001', u'Karick', u'14-12-2020', u'1$']
>>> [str(x) for x in EmployeeList]
['1001', 'Karick', '14-12-2020', '1$']
>>> EmployeeList = [u'1001', u'करिक', u'14-12-2020', u'1$']
>>> [str(x) for x in EmployeeList]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
答案 2 :(得分:13)
我们可以使用map
功能
print map(str, EmployeeList)
答案 3 :(得分:5)
怎么样:
def fix_unicode(data):
if isinstance(data, unicode):
return data.encode('utf-8')
elif isinstance(data, dict):
data = dict((fix_unicode(k), fix_unicode(data[k])) for k in data)
elif isinstance(data, list):
for i in xrange(0, len(data)):
data[i] = fix_unicode(data[i])
return data
答案 4 :(得分:5)
只需使用此代码
即可EmployeeList = eval(EmployeeList)
EmployeeList = [str(x) for x in EmployeeList]
答案 5 :(得分:0)
只需使用
unicode_to_list = list(EmployeeList)
答案 6 :(得分:0)
有几种方法可以做到这一点。我像这样
def clean(s):
s = s.replace("u'","")
return re.sub("[\[\]\'\s]", '', s)
EmployeeList = [clean(i) for i in str(EmployeeList).split(',')]
之后,您可以检查
if '1001' in EmployeeList:
#do something
希望它会对您有所帮助。
答案 7 :(得分:0)
您可以使用json和ast模块,如下所示
>>> import json, ast
>>>
>>> EmployeeList = [u'1001', u'Karick', u'14-12-2020', u'1$']
>>>
>>> result_list = ast.literal_eval(json.dumps(EmployeeList))
>>> result_list
['1001', 'Karick', '14-12-2020', '1$']
答案 8 :(得分:0)
只需json.dumps即可解决问题
json.dumps函数实际上将所有的unicode文字转换为字符串文字,这对我们来说很容易将数据加载到json文件或csv文件中。
示例代码:
import json
EmployeeList = [u'1001', u'Karick', u'14-12-2020', u'1$']
result_list = json.dumps(EmployeeList)
print result_list
输出:[“ 1001”,“ Karick”,“ 14-12-2020”,“ 1 $”]