gpt4 book ai didi

Python 将奇怪的 Unicode 写入 CSV

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:35 25 4
gpt4 key购买 nike

我正在尝试使用 python newspaper3k 提取文章信息打包,然后写入 CSV 文件。虽然信息已正确下载,但我在输出到 CSV 时遇到问题。我不认为我完全理解 unicode,尽管我努力阅读它。

from newspaper import Article, Source
import csv

first_article = Article(url="http://www.bloomberg.com/news/articles/2016-09-07/asian-stock-futures-deviate-as-s-p-500-ends-flat-crude-tops-46")

first_article.download()
if first_article.is_downloaded:
first_article.parse()
first_article.nlp

article_array = []
collate = {}

collate['title'] = first_article.title
collate['content'] = first_article.text
collate['keywords'] = first_article.keywords
collate['url'] = first_article.url
collate['summary'] = first_article.summary
print(collate['content'])
article_array.append(collate)

keys = article_array[0].keys()
with open('bloombergtest.csv', 'w') as output_file:
csv_writer = csv.DictWriter(output_file, keys)
csv_writer.writeheader()
csv_writer.writerows(article_array)

output_file.close()

当我打印 collat​​e['content'],即 first_article.text 时,控制台输出文章的内容就好了。一切都正确显示,撇号和所有。当我写入 CVS 时,内容单元格文本中有奇怪的字符。例如:

“归根结底,欧洲的经济状况不佳,通货膨胀看起来并不令人兴奋,还有许多政治风险需要考虑。

到目前为止我已经尝试过:

with open('bloombergtest.csv', 'w', encoding='utf-8') as output_file:

没有用。我还尝试了 utf-16 而不是 8,但这只会导致单元格以奇怪的顺序写入。它没有在 CSV 中正确创建单元格,尽管输出看起来是正确的。我也试过 .encode('utf-8') 是各种变量,但没有任何效果。

这是怎么回事?为什么控制台会正确打印文本,而 CSV 文件有奇怪的字符?我怎样才能解决这个问题?

最佳答案

encoding='utf-8-sig' 添加到 open()。 Excel 需要 UTF-8 编码的 BOM 代码点(字节顺序标记,U+FEFF)签名才能将文件解释为 UTF-8;否则,它采用默认的本地化编码。

关于Python 将奇怪的 Unicode 写入 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com