python newspaper3kパッケージを使用して記事情報を抽出しようとしていて、CSVファイルに書き込もうとしています。情報が正しくダウンロードされている間、私はCSVへの出力に問題があります。私はそれについての私の読書努力にもかかわらず、私が完全にユニコードを理解するとは思わない。Python奇妙なUnicodeをCSVに書き込む
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()
私はコレート['content'](first_article.text)を印刷すると、コンソールは記事の内容をうまく出力します。すべてが正しく表示され、アポストロフィとすべて。 CVSに書き込むと、コンテンツセルのテキストには奇数の文字が含まれます。たとえば、
「ヨーロッパの経済は素晴らしい形ではありません。インフレはエキサイティングに見えます。また、政治的リスクがたくさんあります。
は、これまで私が試してみました:
with open('bloombergtest.csv', 'w', encoding='utf-8') as output_file:
無駄に。私も8の代わりにutf-16を試しましたが、ちょうど奇妙な順序でセルを書きました。出力が正しく見えましたが、CSVでセルが正しく作成されませんでした。私も試みました。エンコード( 'utf-8')はさまざまな変数ですが、何も機能していません。
何が起こっているのですか? CSVファイルに奇妙な文字があるのに、コンソールがテキストを正しく印刷するのはなぜですか?これをどうすれば解決できますか?
私はそれをExcelで開いています。普遍的な文字を書く方法はありませんか? – sirryankennedy
@ sirryankennedy BOM付きのUTF-8を作成しようとしましたか(リンクされた答えに示されています)? – Leon
@ sirryankennedy:「ユニバーサル」エンコーディングはありません。プレーンなASCIIでさえも "普遍的な"ものではない。 1バイトエンコーディングを使用する場合は、Windows-1252などの中かっこを含むものに変換します。 – usr2564301