簡體   English   中英

Python-存儲從Excel讀取的漢字

[英]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} \\ uff0c N{x|x<1} \\ uff0c \\ u5219 bar(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM