파이썬 newspaper3k 패키지를 사용하여 기사 정보를 추출하려고 시도하고 CSV 파일에 쓰려고합니다. 정보가 올바르게 다운로드되는 동안 CSV에 대한 출력에 문제가 있습니다. 나는 그것에 대해 읽으려는 노력에도 불구하고 유니 코드를 완전히 이해하지 못한다고 생각합니다.파이썬 이상한 유니 코드를 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()
first_article.text 인 collate [ 'content']를 인쇄하면 콘솔에서 기사의 내용을 잘 출력합니다. 모든 것이 올바르게 표시됩니다. 아포스트로피 및 모든 것. CVS에 쓸 때 콘텐츠 셀 텍스트에 이상한 문자가 있습니다. 예를 들면 다음과 같습니다.
â € œAt 오늘의 끝에서, 유럽의 경제는 훌륭한 형태가 아니며, 인플레이션은 흥미롭지 않습니다. 그리고 많은 정치적 위험이 있습니다.
은 지금까지 나는 시도했다 : 아무 소용이
with open('bloombergtest.csv', 'w', encoding='utf-8') as output_file:
. 나는 또한 8 대신에 utf-16을 시도했지만, 그저 세포가 이상한 순서로 쓰는 결과를 가져왔다. 출력이 올바른 것으로 보였지만 CSV에서 올바르게 셀을 만들지 않았습니다. 나는 또한 .encode ('utf-8') 다양한 변수를 시도했지만 아무것도 작동하지 않았습니다.
무슨 일 이니? 왜 CSV 파일에 홀수 문자가있는 반면 콘솔에서 텍스트를 올바르게 인쇄합니까? 이 문제를 어떻게 해결할 수 있습니까?
Excel에서 열어 보겠습니다. 보편적 인 문자를 쓸 수있는 방법이 없습니까? – sirryankennedy
@sirryankennedy BOM을 사용하여 UTF-8을 작성하려고 했습니까 (링크 된 답변에 표시된대로)? – Leon
@sirryankennedy : "범용"인코딩이 없습니다. 일반 ASCII조차도 "보편적"이 아닙니다. 1 바이트 인코딩을 사용하려면 Windows-1252와 같이 둥근 따옴표가 포함 된 것으로 변환하십시오. – usr2564301