[英]list with special characters
使用 Python 2,我從一個變量(它在 xml 標記之外)中保存字符串並將其存儲到一個列表中。
第一:字符串包含特殊字符,當我打印它們時,即使使用 encode("ISO-8859-1") 它們也不會正確顯示
第二:字符串在列表中顯示每個字符串,我希望它們在同一個列表中
import lxml.objectify
from lxml import etree
import codecs
import xml.etree.cElementTree as ET
file_path = "C:\Users\HP\Downloads\Morphalou-2.0.xml"
for event, elem in ET.iterparse(file_path, events=("start", "end")):
if elem.tag == 'orthography' and event =='start':
data = elem.text
my_list = []
if data is not None :
for i in data.split('\n'):
my_list.append(i.encode("ISO-8859-1"))
print (my_list)
這就是我得到的
['abiotique']
['abiotiques']
[u'abi\xe9tac\xe9e']
[u'abi\xe9tac\xe9e']
[u'abi\xe9tac\xe9es']
[u'abi\xe9tin']
[u'abi\xe9tin']
[u'abi\xe9tins']
[u'abi\xe9tine']
[u'abi\xe9tines']
這是我所期待的:
['abiotique','abiotiques','abiétacée',...]
有誰知道如何解決這一問題 ? 謝謝
Python3 自動處理這個,你不需要使用encode
。
至於列表,每次迭代都會創建一個新列表,在循環上方創建它,並在對 XML 元素的迭代完成后打印它。
工作示例(我已經多次將abiétacée
一詞abiétacée
到 XML 中以重現您的情況):
my_list = []
for event, elem in ET.iterparse(file_path, events=("start", "end")):
if elem.tag == 'orthography' and event =='start':
data = elem.text
if data is not None :
for i in data.split('\n'):
my_list.append(i)
print (my_list)
產出
['abiétacée', 'abiétacée', 'abiétacée', 'abiétacée']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.