我正在学习python中的文件概念。在这里,我想从文本文件中提取一些文本(以粗体格式)。但我不知道该怎么做。
这是我的示例文本文件:
{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“S”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}
{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“a”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}
{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“b”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}
{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“c”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}}
{“词汇表”:{“title”:“示例词汇表”,“GlossDiv”:{“title”:“f”,“GlossList”:{“GlossEntry”:{“ID “:”SGML“,”SortAs“:”SGML“,”GlossTerm“:”标准通用标记语言“, “缩写”:“SGML”,“Abbrev”:“ISO 8879:1986”,“GlossDef”:{“para”:“元标记语言,用于创建DocBook等标记语言。”,“GlossSeeAlso”:[“GML”,“XML”]}, “GlossSee”:“markup”}}}}
我需要这样的输出:
"title": "S" ; "para": "A meta-markup language, used to create markup languages such as DocBook."
"title": "a" ; "para": "A meta-markup language, used to create markup languages such as DocBook."
....
任何人都可以帮我在python中执行此操作吗?
答案 0 :(得分:2)
由于没有尝试显示任何代码,我只会给出一些一般性的建议。文件中的每一行实际上都是一个称为dictionary
的Python数据结构。您可以阅读每一行并使用Python的json
库来解析它并将其存储为字典(dict
)。有关Python词典的更多信息,请访问here:
<强> 5.5。字典强> Python内置的另一个有用的数据类型是字典(请参阅映射类型 - 字典)。词典有时在其他语言中被称为“关联记忆”或“关联阵列”。与由一系列数字索引的序列不同,字典由键索引,键可以是任何不可变类型;字符串和数字总是键。如果元组仅包含字符串,数字或元组,则它们可用作键;如果元组直接或间接包含任何可变对象,则不能将其用作键。您不能将列表用作键,因为可以使用索引赋值,切片赋值或append()和extend()等方法对列表进行修改。
最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。一对大括号创建一个空字典:{}。在括号内放置以逗号分隔的键:值对列表,将初始键:值对添加到字典中;这也是字典在输出上的写法。
字典上的主要操作是使用某个键存储值并提取给定键的值。也可以删除带有del的键:值对。如果使用已在使用的密钥进行存储,则会忘记与该密钥关联的旧值。使用不存在的密钥提取值是错误的。
可以在此StackOverflow question的接受答案中找到从文件中读取多个JSON对象的一些想法。特别是最后一个示例代码段。
读入字典后,您可以对数据执行字典查找。如果我将字典读入名为dictvar
的变量中,那么我可以通过执行以下操作来打印glossary
title
:
print (dictvar['glossary']['title'])
如果我正在阅读上面文件中的第一个例子,那就打印出来了:
example glossary
您实际上可以使用最少量的代码生成一个能够满足您需求的程序