2016-05-14 20 views
1

編集:私の質問を絞り込むために、私は答えが難しくなるように単純過ぎるかもしれません。もう一度試してみましょう。キー列、見出しの列、および身体コラム:私は3つの列にその情報を表しますcsvファイルに辞書を出力しているよリストを含む辞書をCSVにエクスポート

holder = {'key1':['headline1', 'body1'], 'key2':['headline2', 'body2']} 

:辞書があると仮定します。下記の理由により、下記の答えでそれを試みることができませんでした。

これはもう少し明確です。


私はいくつかの中国語のニュースサイトを削り取り、結果をcsvファイルに出力しようとしています。スクレイピング後、辞書は構造化されています:

uniqueID : [headlines, body] 

uniqueID1/headlines1/body1 
uniqueID2/headlines2/body2 
uniqueID3/headlines3/body3 

を別の列のそれらのそれぞれに(できるだけ多くの行を持つので、基本的に3つの列私は物語を持っているとして):私は最終的に読み込み、CSVに出力するようにしようとしています。

私はthis questionからソリューションを使用してみましたが、(私は修正する方法を知っている)XとY軸を反転することに加えて、それはまた別のエントリに各見出し/物語の中で各文字を勃発し、文字を壊しましたエンコーディング。私はこれらの問題のいずれかを解決する方法を知らないので、私はちょっと立ち往生しています。

それが役に立つか関連している場合は、私は文字をこのようにエンコードしています:

head_fixed = str(headline) 
    soup = BeautifulSoup(head_fixed, 'lxml') 
    good_output = soup.text.decode("unicode-escape").encode("utf-8") 

当然のことながら、私はまた、私はデータを構造化しています方法が間違っていることを示唆する開いています。

ありがとうございます。

+1

コード全体または少なくともhttp://stackoverflow.com/help/mcveを表示できますか?誰もが自分のソリューションをテストすることは難しいし、それがなければ問題を本当に理解することも難しいです。 – Keatinge

+0

質問があまりにも漠然としているので、私はこの話題を話題として閉じようとしています。 – martineau

+0

ユニークなIDはどこから来ていますか?あなたはヘッドラインとストーリーのボディをどうやって取得していますか?あなたのcsvファイルの区切り文字を '/'で区切って考えるのはいい考えです。もし物語や本文にその文字があればどうでしょうか? – martineau

答えて

0

これは(あなたがpip install pandasする必要があるかもしれません)pandasと非常に簡単です:

import pandas as pd 

holder = {'key1':['headline1', 'body1'], 'key2':['headline2', 'body2']} 

df = pd.DataFrame(holder) 

df.transpose().to_csv('output.csv', header=None) 

# output.csv: 
# key1 headline1 body1 
# key2 headline2 body2 
0

私は、リストとしてデータを再構築することにより、この問題を解決することになった:

holder = [[key1, headline1, body1], [key2, headline2, body2]] 

その後、私はちょうど私が私たちにメリットがあるかどうかわからない

with open('output.csv', 'wb') as f: 
    writer = csv.writer(f) 
    writer.writerows(holder) 

を使用このような状況では、辞書、リスト、またはこれら2つの組み合わせを使用することができます。このケースでは、リストへの切り替えはうまくいくように見えましたが、私はDanielによって提案されたソリューションについて少し不思議です。

+0

あなたがそれを解決したのを見てうれしい。ちょうどFYI:Stackoverflowでは、自分の答えを提出するのではなく、投票したり、回答を受け入れるのが良い方法です。幸い! – Daniel

+0

ありがとう!この質問のすべてで明らかなように、私はまだサイト(とpython ....)の周りに自分の道を勉強しています – mweinberg

+0

それはすべて良いです。投票して回答を受け入れることができるはずです:http://www.stackoverflow.com/help/someone-answers – Daniel

関連する問題