6

次のファイル dic.txt があります。

{'a':0, 'b':0, 'c':0, 'd':0}

内容を読んで辞書として使いたい。新しいデータ値を入力したら、それらをそのファイルに書き込む必要があります。基本的に、辞書を操作し、その値を更新し、後で使用するために保存するスクリプトが必要です。

動作するスクリプトがありますが、実際に dic.txt の内容をスクリプト内の変数に読み込む方法がわかりません。これを試したときの原因:

file = '/home/me/dic.txt'
dic_list = open(file, 'r')
mydic = dic_list
dic_list.close()

mydic として得られるのは str です。そして、その値を操作することはできません。そこで質問です。dic.txt から辞書を作成するにはどうすればよいですか?

4

3 に答える 3

12

文字列からデータ構造を取得するには、データを解析する必要があります。幸い、Pythonには、Pythonデータ構造を安全に解析するための関数が用意されていますast.literal_eval()。例えば:

import ast

...

with open("/path/to/file", "r") as data:
    dictionary = ast.literal_eval(data.read())
于 2012-12-10T21:36:00.877 に答える
4

Python 組み込み関数 eval() を使用できます。

   >>> mydic= "{'a':0, 'b':0, 'c':0, 'd':0}"
    >>> eval(mydic)
    {'a': 0, 'c': 0, 'b': 0, 'd': 0}
    >>> 
于 2014-03-03T14:06:18.947 に答える
-1
>>> import json
>>> json.loads('{"a":0, "b":0, "c":0, "d":0}')
{u'a': 0, u'c': 0, u'b': 0, u'd': 0}

そう

with open('/path/to/file', 'r') as f:
    d = json.loads(f.read().replace("'", '"')
于 2012-12-10T21:38:26.010 に答える