Python 以字典格式显示文本文件数据

Python 以字典格式显示文本文件数据,python,dictionary,Python,Dictionary,我有一个文本文件(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"},

我有一个文本文件(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"},
         }
}
我想显示以下各项的值: String1,value1即{“One”:“a”,“Two”:“b”,“Three”:“c”} 字符串2、值2和一个为“aa1”


如何显示它。

它看起来像json,但缺少几个重要部分。与下面比较,缺少几个“,”的。是new.txt的复制粘贴还是某些手动格式错误

import ast
with open('new.txt') as f:
    d = ast.literal_eval(f.read())
print d['String2']['Value2']['One']
{
    "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很容易处理:

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

虽然eumiro答案中的ast导入看起来很漂亮。

没有ast还有其他方法吗?@SuryaGupta-使用
eval
,但您不想使用它。@eumiro:数据似乎都不是有效的json或有效的Python对象形式谢谢,它工作得很好:)在
之后的第5行中,应该有一个逗号。