使用python,我想通读JSON,并查找以相同单词开头的行,并仅显示行中的最后一个单词。然后将这些重复的行存储到一个变量中,所以当我说打印时,这些行只会打印一次而不是它们重复的次数。然后按照这个变量组,打印重复行后2行的部分行。
这很可能没有任何意义。洛尔。
所以,这是我到目前为止的代码:
f = open("myfile.txt")
lines = f.read().splitlines()
for i in range(len(lines)):
line = lines[i]
if line.strip().startswith('"ID":'):
try:
name_line = lines[i+2]
print line[21:-2]
except StopIteration:
break
print name_line[15:-2]
print '\n'
示例文本文件 (我想将以ID字段开头的行分组并打印后面的第二行(名称行))
{
"theme": land1,
"ID": "biosphere",
"Url": "www.land.com",
"name": "mangrove",
},
{
"theme: water1,<br>
"ID": "hydrosphere",<br>
"Url": "www.water.com",<br>
"name": "Pacific",<br>
},
{
"theme": "air1,
"ID": "atmosphere",
"Url": "www.air.com",
"name": "Oxygen",
},
{
"theme": land2,
"ID": "biosphere",
"Url": "www.land.com",
"name": "oak",<
},
{
"theme: water2,
"ID": "hydrosphere",
"Url": "www.water.com",
"name": "Atlantic",
},
{
"theme": "air2,
"ID": "atmosphere",
"Url": "www.air.com",
"name": "Nitrogen",
},
}
我的当前输出:
biosphere
mangrove
hydrosphere
Pacific
atmosphere
Oxygen
biosphere
oak
hydrosphere
Atlantic
atmosphere
Nitrogen
我想要的输出:
biosphere
mangrove
oak
hydrosphere
Pacific
Atlantic
atmosphere
Oxygen
Nitrogen
这可能吗?建议?提前谢谢!
答案 0 :(得分:0)
将其视为JSON文件而非文本文件。
您可以轻松修改JSON文件并根据匹配的密钥获取值并聚合它们。
答案 1 :(得分:0)
将此视为字典列表而不是要解析的文本行。将文件导入为json,然后遍历列表中的每个项目,获取制作自己的字典所需的每个元素。
你可能不得不拿出那些“&lt; br&gt;”你开始之前的陈述。
答案 2 :(得分:0)
如果您不想使用JSON,请执行以下操作:
f = open("myfile.txt")
myDict = {}
for line in f:
if line.strip().startswith('"ID":'):
key = line.split('"')[3]
if line.strip().startswith('"name":'):
value = line.split('"')[3]
myDict.setdefault(key,[]).append(value)
for key in myDict:
print key
print '\n'.join(myDict[key])
print