首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改python数组的编码?

如何更改python数组的编码?
EN

Stack Overflow用户
提问于 2017-12-19 15:22:54
回答 1查看 83关注 0票数 1

我使用下面的代码从一个中文网站上抓取一个表格。它工作得很好。但是我存储在列表中的内容似乎没有正确显示。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
import pandas as pd

x = requests.get('http://www.sohu.com/a/79780904_126549')
bs = BeautifulSoup(x.text,'lxml')

clg_list = []

for tr in bs.find_all('tr'):
    tds = tr.find_all('td')
    for i in range(len(tds)):
       clg_list.append(tds[i].text)
       print(tds[i].text)

当我打印文本时,它显示中文字符。但是当我打印出列表时,它显示\u4e00\u671f\uff0834\u6240\uff09‘。我不确定是应该更改编码,还是其他地方出了问题。

EN

回答 1

Stack Overflow用户

发布于 2017-12-19 16:13:18

在这种情况下,没有任何问题。

当您打印python列表时,python会在列表的每个元素上调用repr。在python2中,unicode字符串的repr显示组成字符串的字符的unicode代码点。

代码语言:javascript
复制
>>> c = clg_list[0]
>>> c # Ask the interpreter to display the repr of c
u'\u201c985\u201d\u5de5\u7a0b\u5927\u5b66\u540d\u5355\uff08\u622a\u6b62\u52302011\u5e743\u670831\u65e5\uff09'

但是,如果您对字符串进行print,python会使用文本编码(例如,utf-8)对unicode字符串进行编码,并且您的计算机将显示与编码匹配的字符。

代码语言:javascript
复制
>>> print c
“985”工程大学名单(截止到2011年3月31日)

请注意,在python3打印中,由于python3更好的unicode处理,列表将如您所愿地显示中文字符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47881857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档