2016-07-01 12 views
0

現在、1行のリストと別の行の辞書(以下を参照)を含むファイルを作成するコードを書いています。文字列形式でファイルに保存されたリストや辞書を取り出し、そのリスト/辞書を再作成する方法はありますか?私は他の投稿をしようとしましたが、スレッドのどれもこれまでのところ私の質問を解決してくれないように、私は正しいことを探しているとは思わない。ファイル内の1行から辞書を作成する

これは、ファイルの内容がどのように見えるかである:
[1,2,3,4,5,6,7,8]
{ 'A':1、 'B':2」 C ':3}

これは(もちろんこれは単なる近似である)私は仕事だろうと思った何の線に沿って

location = input("Please input your file location")  
f.open(location, 'r')  
list = location(line1)  
dict = location(line2) 

感謝です!

答えて

2

安全にリテラルのPythonを含む文字列を評価するために、あなたがast.literal_eval()を使用することができます。

>>> from ast import literal_eval 
>>> literal_eval("[1,2,3,4,5,6,7,8]") 
[1, 2, 3, 4, 5, 6, 7, 8] 
>>> literal_eval("{'a': 1,'b': 2,'c': 3}") 
{'a': 1, 'b': 2, 'c': 3} 

ファイルの最初の2行を読んで解析するか:

from ast import literal_eval 

with open(location) as f: 
    L = literal_eval(f.readline()) 
    D = literal_eval(f.readline()) 
+0

彼はちょうど使用することはできません新しいモジュールを学習するのではなく、通常の 'eval'関数でビルドされていますか? – ytpillai

+0

@ytpillai: 'eval()'を使うのは、信頼できないソースから来たリテラルだけでなく、任意の式*を評価できるので、悪い習慣です。 –

+0

ありがとう、ありがとう – ytpillai

関連する問題