如何解决从导出到csv文件(python)的unicode错误

问题描述 投票:1回答:1

我正在尝试使用python从web-scraping导出文本。但是,结果显示:

> UnicodeEncodeError Traceback (most recent call last) in () 71
> 'ranking_title': ranking_title, ---> 72 'ranking_category':
> ranking_category}) 73
> 
> ~\Anaconda3\lib\csv.py in writerow(self, rowdict) 154 def
> writerow(self, rowdict): --> 155 return
> self.writer.writerow(self._dict_to_list(rowdict)) 156
> 
> ~\Anaconda3\lib\encodings\cp1252.py in encode(self, input, final) 18
> def encode(self, input, final=False): ---> 19 return
> codecs.charmap_encode(input,self.errors,encoding_table)[0] 20
> 
> UnicodeEncodeError: 'charmap' codec can't encode characters in
> position 299-309: character maps to

我可能犯的错误是什么?我可以使用我刮过的文本导出到CSV文件中,但是当我在另一天尝试时,这是错误的。

PS。我已经在工作簿的开头导入了Beautifulsoup和csv。

python csv beautifulsoup jupyter-notebook export-to-csv
1个回答
1
投票

添加try-catch块以检查Unicode:

try:
    to_unicode = unicode
except NameError:
    to_unicode = str

# requests the URL
site = requests.get('specify URL')

# decodes the string using the codec registered for encoding.

data = site.content.decode('utf-8')

# use Beautiful Soup for scraping
Soup = BS(data, 'lxml')

最后,在写入文件时确保以Unicode编写:

file.write(to_unicode(data))

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.