2016-05-09 10 views
2

私は以下のリストabcを持っています。このデータをファイル(CSVまたはその他の区切り文字)に書き込んでから、そのファイルをExcelで開く必要があるため、テーブルに変換したいと考えています。Pythonリストをテーブルに変換する

そのテーブルの列がcompany, source, time, link, titleになり、リストの最初の要素のために、最初の行に値を持つことになります -

intel corporation, 
Motely Fool, 
4 hours ago, 
http://www.fool.com/investing/general/2016/05/09/intel-corporations-strange-choice.aspx, 
Intel Corporation's Strange Choice 

どのように私は同じことを達成できますか? abcは要素

abc=[{'intel corporation': {'source': u'Motley Fool', 'time': u'4 hours ago', 'link': u'http://www.fool.com/investing/general/2016/05/09/intel-corporations-strange-choice.aspx', 'title': u"Intel Corporation's Strange Choice"}}, {'intel corporation': {'source': u'Seeking Alpha', 'time': u'33 minutes ago', 'link': u'http://seekingalpha.com/article/3973271-intels-augmented-reality-plans-coming-focus', 'title': u"Intel's Augmented Reality Plans Are Coming Into Focus"}}, {'intel corporation': {'source': u'Seeking Alpha', 'time': u'7 hours ago', 'link': u'http://seekingalpha.com/article/3973098-intel-consider-debt-large-buyback', 'title': u'Should Intel Consider More Debt For A Large Buyback?'}}, {'intel corporation': {'source': u'Schaeffers Research (blog)', 'time': u'9 hours ago', 'link': u'http://www.schaeffersresearch.com/content/news/2016/05/09/analyst-downgrades-apple-inc-berkshire-hathaway-inc-and-intel-corporation', 'title': u'Analyst Downgrades: Apple Inc., Berkshire Hathaway Inc., and Intel ...'}}, {'intel corporation': {'source': u'Money News (press release)', 'time': u'Money News (press release)-12 hours ago Explore in depth (11 more articles)', 'link': u'http://www.newsismoney.com/2016/05/09/shares-of-tech-companies-intel-corporation-nasdaqintc-microsoft-corporation-nasdaqmsft-news-update/', 'title': u'Shares of Tech Companies Intel Corporation (NASDAQ:INTC ...'}}, {'intel corporation': {'source': u'Motley Fool', 'time': u'May 6, 2016', 'link': u'http://www.fool.com/investing/general/2016/05/06/why-intel-corporation-quit-smartphones-to-focus-on.aspx', 'title': u'Why Intel Corporation Quit Smartphones to Focus on 5G'}}, {'intel corporation': {'source': u'Motley Fool', 'time': u'May 6, 2016', 'link': u'http://www.fool.com/investing/general/2016/05/06/dont-blame-x86-for-intel-corporations-smartphone-f.aspx', 'title': u"Don't Blame X86 for Intel Corporation's Smartphone Failure"}}, {'intel corporation': {'source': u'Street Updates', 'time': u'11 hours ago', 'link': u'http://www.streetupdates.com/2016/05/09/valuable-analysts-trends-to-observe-intel-corporation-nasdaqintc-taiwan-semiconductor-manufacturing-company-ltd-nysetsm/', 'title': u'Valuable Analysts Trends to Observe: Intel Corporation (NASDAQ ...'}}, {'intel corporation': {'source': u'Motley Fool', 'time': u'May 5, 2016', 'link': u'http://www.fool.com/investing/general/2016/05/05/intel-corporation-its-time-to-replace-ceo-brian-kr.aspx', 'title': u"Intel Corporation: It's Time to Replace CEO Brian Krzanich"}}, {'intel corporation': {'source': u'Amigobulls', 'time': u'Amigobulls-May 5, 2016 Explore in depth (10 more articles)', 'link': u'http://amigobulls.com/articles/intel-corporations-mobile-exit-could-drive-long-term-gains', 'title': u"Intel Corporation's Mobile Exit Could Drive Long-Term Gains"}}, {'intel corporation': {'source': u'Seneca Globe', 'time': u'7 hours ago', 'link': u'http://www.senecaglobe.com/intel-corporation-nasdaqintc-not-great-time-continues-downward-trend-trina-solar-nysetsl/323986/', 'title': u'Intel Corporation (NASDAQ:INTC) Has Not Been Having A Great ...'}}, {'intel corporation': {'source': u'The News Journal', 'time': u'19 minutes ago', 'link': u'http://news4j.com/ruling-stocks-in-todays-market-intel-corporation-nasdaqintc-5/', 'title': u"Ruling stocks in today's market: Intel Corporation (NASDAQ:INTC)"}}] 
+0

私は、Excelで開くことができるCSV形式または任意の形式のテーブル – user2543622

+0

'Pandas'は、この種の仕事のために非常に便利なライブラリですが、それは追加の情報なしに答えることは困難です。特に、データフレームをcsvや他の多くのフォーマット( '.to_csv'のように簡単に名前をつけたもの)にするには、大きなI/Oメソッドがあります。あなたのデータはどのように見えますか? – jdg

答えて

5
import csv 
import sys # sys.setdefaultencoding is cancelled by site.py 
reload(sys) # to re-enable sys.setdefaultencoding() 
sys.setdefaultencoding('utf-8') 

with open('data.csv', 'wb') as out: 
    writer = csv.DictWriter(out, ['company', 'source', 'time', 'link', 'title']) 
    writer.writeheader() 

    for thing in abc: 
     for company, details in thing.items(): 
      details['company'] = company 
      writer.writerow(details) 
+0

何故私は交互の空白の行を得ているのですか? UnicodeEncodeError:UnicodeEncodeError: 'ascii'コーデックは、位置7の文字 'uxx3'をエンコードできません:序数が範囲内にありません(128) 'どのように解決できますか? - 私は "intel corporation"、 "intel corporation10"、 "intel corporation20"、 "intel corporation30"などの会社名の複数の値を持っています – user2543622

+1

ファイルのAlexコードを交互に空行を扱う 'wb'に変更しました。あなたはユニコードの問題を抱えているので、asciiの問題があります。その問題にはいくつかの質問があります。 – PyNEwbie

+0

私は助けが必要です。 'http:// stackoverflow.com/questions/13485546/conversion-unicode-to-in-python'を使って他のエラーの問題を解決できました – user2543622

1

私はあなたがExcelのスプレッドシートのようなテーブルについて話していると仮定し、数千を持っています。そうであれば、パンダパッケージを見ることができますhttp://pandas.pydata.org/

パッケージをインストールしたら、リスト内のアイテムをループしてから、それらを反復してPandas DataFrameに挿入できます(pandasリンクを参照)。また、Convert Python dict into a dataframeを見てください、それはあなたを助けることができるいくつかの情報があります。

必要な場合は、Dataframeオブジェクトを.xlsxまたはcsv形式にエクスポートできます。

+0

'pd.DataFrame(abc)'を試しましたが、必要な方法でテーブルを作成できませんでした。テーブルには名前が "intel corporation"の列が1つしかありませんでした。しかし、私はそれをカラムにしたい、そして、テーブルが持っている唯一のカラムは4つの異なるカラムに分割する必要があります。 – user2543622

+0

リストの要素をデータフレームに繰り返し追加する必要があります。 pd.DataFrame(abc)はdictでは動作し、リストでは動作しません。 HTH。 –

関連する問題