显示在字典格式的文本文件数据

问题描述:

我有具有像数据的文本文件(new.txt):显示在字典格式的文本文件数据

{ 
    "String1": { 
     "Value1": {"One":"a","Two":"b","Three":"c"}, 
     "Value2": {"One":"aa","Two":"bb","Three":"cc"}, 
     } 

    "String2": { 
     "Value1": {"One":"a1","Two":"b1","Three":"c1"}, 
     "Value2": {"One":"aa1","Two":"bb1","Three":"cc1"}, 
     } 
} 

我想显示的值: 字符串1,值1也就是{“一“:” 一”, “二”: “b”, “三”: “C”} String2的,值2,另一种是 “AA1”

我怎样才能显示它..

+1

在'}'后面的第5行中,应该有一个逗号。 – eumiro 2013-02-22 12:57:21

import ast 
with open('new.txt') as f: 
    d = ast.literal_eval(f.read()) 
print d['String2']['Value2']['One'] 
+0

有没有其他方法可以做到这一点? – 2013-02-22 12:54:11

+1

@SuryaGupta - 带'eval',但你不想使用它。 – eumiro 2013-02-22 12:55:47

+1

@eumiro:数据既不是有效的json或有效的Python对象形式 – Abhijit 2013-02-22 12:56:27

它看起来像JSON,但缺少一些重要的东西 部分。与下面相比,缺少一些“,”的。它是否复制new.txt粘贴或手动格式错误?

{ 
    "String2": { 
     "Value2": { 
      "Three": "cc1", 
      "Two": "bb1", 
      "One": "aa1" 
     }, 
     "Value1": { 
      "Three": "c1", 
      "Two": "b1", 
      "One": "a1" 
     } 
    }, 
    "String1": { 
     "Value2": { 
      "Three": "cc", 
      "Two": "bb", 
      "One": "aa" 
     }, 
     "Value1": { 
      "Three": "c", 
      "Two": "b", 
      "One": "a" 
     } 
    } 
} 

如果它应该是JSON,它很容易与Python处理:在eumiro答案

import json 
with open('new.txt') as f: 
    myjson = json.loads(f.read()) 
print myjson['String2']['Value2']['One'] 

AST进口看起来非常漂亮,但。