[英]Python - store chinese characters read from excel
我正在嘗試使用xlrd在excel表中閱讀,但是在存儲漢字時遇到了一些問題。
我不確定為什么將值存儲在列表中時會轉換值:
碼:
for rownum in range(sh.nrows):
Temp.append(sh.row_values(rownum))
print Temp
輸出:
u'\\ u8bbe \\ u5168 \\ u96c6 \\ u662f \\ u5b9e \\ u6570 \\ u96c6R \\ uff0c
M= {x|-2<=x<=2}
\\ uff0cN{x|x<1}
\\ uff0c \\ u5219bar(M) nn N
\\ u7b49 \\ u4e8e\\ n [A] \\ uff1a
{x|x<-2}
[B] \\ uff1a
{x|-2<1}
[C] \\ uff1a
{x|x<1}
[D] \\ uff1a
{x|-2<=x<1}
'
但是,當我打印出單個單元格值時,按照excel工作表可以正確打印出它們:
碼:
cell_test = sh.cell(1,3).value
print cell_test
輸出:
設全集是實數集R,
M={x|-2<=x<=2}
,N={x|x<1}
,則bar(M) nn N
等於[A]:
{x|x<-2}
[B]:
{x|-2<1}
[C]:
{x|x<1}
[D]:
{x|-2<=x<1}
如何使Python以原始值存儲上述數據?
謝謝!
第一。 您的XSL解析器似乎返回unicode
值。
第二。 當您確實print some_complex_object
(就像您print Temp
),Python通常在該對象的元素上輸出repr
函數的結果。 當您print repr(some_unicode_string)
,通常的輸出類似於u'\設\全\集\是'
。
第三。 值的存儲沒有任何問題-值已正確存儲,您在打印時遇到了問題。 嘗試類似的方法:
for i in Temp:
print i
值應相同。 它們只是以不同的方式顯示。
>>> s = u'o\ufb03ce'
>>> print s
office
>>> print [s]
[u'o\ufb03ce']
>>> print repr(s)
u'o\ufb03ce'
>>> print '\n'.join([s])
office
本示例顯示,當您打印列表時,使用repr()
函數顯示單個項目,但按原樣顯示字符串(unicode字符串首先編碼為字節)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.