0

次の形式のテキスト ファイルがあります。

hsa04012 [[['7039', '1956', '1398', '25'], ['7039', '1956', '1399', '25']], [['1839', '1956', '1398', '25'], ['1839', '1956', '1399', '25']], [['1399', '25']], [['1398', '25']], [['727738', '1956', '1398', '25'], ['727738', '1956', '1399', '25']], [['1956', '1398', '25'], ['1956', '1399', '25']], [['1950', '1956', '1398', '25'], ['1950', '1956', '1399', '25']], [['374', '1956', '1398', '25'], ['374', '1956', '1399', '25']], [['2069', '1956', '1398', '25'], ['2069', '1956', '1399', '25']], [['685', '1956', '1398', '25'], ['685', '1956', '1399', '25']]]
hsa02331...

キーを hsa... を含むテキストとして、値を [リストとして] 括弧内の数字として、ファイルをディクショナリに読み込むにはどうすればよいですか。

前もって感謝します

4

1 に答える 1

4

と を使用str.splitast.literal_evalます。それは最も簡単なようです...

with open(datafile) as f:
    d = {}
    for line in f:
        key,value = line.split(None,1)
        d[key] = ast.literal_eval(value)

ただし、いくつかのゲームをプレイしjsonてリストを取得することもできます. リストは、呼び出されたとおり、非常に有効な JSON 配列のように見えます。

于 2012-11-13T02:20:26.223 に答える