Python 以字典格式显示文本文件数据
我有一个文本文件(new.txt),其中包含如下数据: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"},
{
"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行中,应该有一个逗号。