如何使用Python将重复的行分组为一个变量,并在每次之后打印第二行

如何使用Python将重复的行分组为一个变量,并在每次之后打印第二行,python,dictionary,Python,Dictionary,使用python,我想通读JSON,找到以相同单词开头的行,并且只显示行中的最后一个单词。然后将这些重复的行存储到一个变量中,所以当我说print时,这些行只打印一次,而不是重复的次数。在这个组变量之后,打印重复行后面2行的部分行 这很可能没有任何意义。哈哈 以下是我目前掌握的代码: 示例文本文件 我想对以ID字段开头的行进行分组,并打印名称行后面的第二行 { "theme": land1, "ID": "biosphere", "Url": "www.lan

使用python,我想通读JSON,找到以相同单词开头的行,并且只显示行中的最后一个单词。然后将这些重复的行存储到一个变量中,所以当我说print时,这些行只打印一次,而不是重复的次数。在这个组变量之后,打印重复行后面2行的部分行

这很可能没有任何意义。哈哈

以下是我目前掌握的代码:

示例文本文件 我想对以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",
    },
}
我想要的输出:


这可能吗?建议?提前谢谢

将其视为JSON文件而不是文本文件


您可以根据匹配的键轻松修改JSON文件和获取值,并将其聚合。

将其视为字典列表,而不是要解析的文本行。将该文件作为json导入,然后循环遍历列表中的每个项目,获取创建自己的字典所需的每个元素


在开始之前,您可能需要删除这些语句。

如果您不想使用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

你确定不能将数据解析为json吗?我不熟悉json,但我会研究一下。嗨,弗雷德!这很好用。非常感谢!但是,我不理解代码。您介意解释一下为什么这样做吗?您好@afrocodes,当然:.split“”会在每行拆分一行并返回一个列表。[3] 以生物圈列表的第四个元素或红树林为例。myDict.setdefaultkey,[]。appendvalue类似于d[key]=d[key]。appendvalue例外,如果未定义d[key],它将返回[]。我只添加了这些语句,因为这是在单独的行上拆分行的唯一方法。我将进一步研究字典。我知道它看起来更像dict而不是json,我建议看看示例dict和json示例,了解一下简单的想法:
biosphere
mangrove

hydrosphere
Pacific


atmosphere
Oxygen

biosphere
oak

hydrosphere
Atlantic

atmosphere
Nitrogen
biosphere
mangrove
oak

hydrosphere
Pacific
Atlantic

atmosphere
Oxygen
Nitrogen
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