2017-07-10 27 views
-2

私はこの問題を解決するのは難しいと思われますが、わかりません。リストにpythonの文字列

['Radoslav Bajus'],[['Economic Annals-XXI', '2016-06-21'], ['Actual Problems of Economics', '2016-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Accounting Reform in Transition and Developing Economies', '2009-12-01']] 

私はもともとリストをループすることを目的:

は私が著者の出版物のためのエントリが次のように保存されているtxtファイルで掻き取ったデータベースを持っています。しかし、私がtxtを読むと、私は結局終わります:

"['Alena Andrejovská'],[['Economic Annals-XXI', '2016-10-10'], ['Journal of Applied Economic Sciences', '2016-09-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2016-01-01'], ['Agris On-line Papers in Economics and Informatics', '2016-01-01'], ['Actual Problems of Economics', '2016-01-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Journal of Applied Economic Sciences', '2015-01-01'], ['Journal of Applied Economic Sciences', '2014-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01']]" 

引用符と文字列形式の読み方はありますか? 私が使用するコードは以下の通りです:

fh = open('results_publications.txt', encoding = "utf8") 
    lst = [] 
    for line in fh: 
     lst.append(line.strip()) 

UPD [OK]を、明確にされていないため申し訳ありません。私は、以下のエントリが/ nで区切られた.txtファイルを持っています(以下の3つのエントリを参照してください)。

['Alena Andrejovská'],[['Economic Annals-XXI', '2016-10-10'], ['Journal of Applied Economic Sciences', '2016-09-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2016-01-01'], ['Agris On-line Papers in Economics and Informatics', '2016-01-01'], ['Actual Problems of Economics', '2016-01-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Journal of Applied Economic Sciences', '2015-01-01'], ['Journal of Applied Economic Sciences', '2014-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01']] 
['Radoslav Bajus'],[['Economic Annals-XXI', '2016-06-21'], ['Actual Problems of Economics', '2016-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Accounting Reform in Transition and Developing Economies', '2009-12-01']] 
['Ľudmila Bartóková'],[['Journal of Applied Economic Sciences', '2016-03-01'], ['E a M: Ekonomie a Management', '2015-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01'], ['12th International Multidisciplinary Scientific GeoConference and EXPO - Modern Management of Mine Producing, Geology and Environmental Protection, SGEM 2012', '2012-12-01'], ['Journal of Applied Economic Sciences', '2012-12-01'], ['E a M: Ekonomie a Management', '2010-06-21']] 

このtxtファイルをリストに読み込んで、後でループすることができます。しかし、あなたがtxtファイルを読むと、それは各エントリを文字列に変換して ""置きます。私はそれをリストのリストに変換する方法を理解しようとしています。文字列のリストではありません。

+0

のようなバックPythonのデータに文字列から変換することができますか? – wpercy

+1

入力ファイルにすでに引用符と角括弧が含まれていますか?その場合はファイルの内容に 'ast.literal_eval'を使ってください。 –

+0

ご迷惑をおかけして申し訳ございません。私は質問に更新を加えました。 – Tatiana

答えて

1

あなたの所望の最終結果は何

import ast 

data_string = "['Alena Andrejovská'],[['Economic Annals-XXI', '2016-10-10'], ['Journal of Applied Economic Sciences', '2016-09-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2016-01-01'], ['Agris On-line Papers in Economics and Informatics', '2016-01-01'], ['Actual Problems of Economics', '2016-01-01'], ['Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis', '2015-01-01'], ['Actual Problems of Economics', '2015-01-01'], ['Journal of Applied Economic Sciences', '2015-01-01'], ['Journal of Applied Economic Sciences', '2014-01-01'], ['Journal of Applied Economic Sciences', '2013-01-01']]" 

data = ast.literal_eval(data_string) 
+1

「データ」はリストではないタプルです – MooingRawr

+0

このコードを試してください。 'list(eval(data_string))' –

+3

@SaeedGharedag​​hi [いいえ](https://nedbatchelder.com/blog/201206/) eval_really_is_dangerous.html)。 –

関連する問題