我是Python的新手,正在致力于从dict文件中提取某些信息。在
我有数百万个存储文本数据的JSON文件。所有JSON文件都有类似的结构。在结构上有很多变化。对于每个JSON文件,我希望从一个特定的键中提取所有文本字符串,并将它们存储为dict
下面的json1
和json2
是简化的示例。我一直在做的是从JSON文件中获取一个样本,分析它们,编写大量if语句,试图包含所有可能的变体。但是,我发现它效率低下,仍然不能包括所有的场景。我想知道是否有一种通用的方法可以使用键"text"
来搜索和提取值。在
json1 = {
"section": {
"heading":{"lvl":"A1", "text":"today"},
"paragraph":[
{"color":"green", "text":"yesterday"},
{"color":"purple", "text":"tomorrow"}
]
}
}
json2 = {
"paragraph":{"text":"everyday", "color": "black"}
}
换句话说,我想得到一个包含所有文本字符串的dict,关键字为“text”。对于json1
,我想得到{"json1":"today yesterday tomorrow"}
。对于json2
,我想得到{"json2":"everyday"}
。在
非常感谢任何帮助。在
如果您不知道其他任何东西,并且结构可以像您所暗示的那样相当随意,那么您必须访问每个节点并进行检查。这可以通过使用递归的通用方式来实现。下面是一个快速而肮脏的函数来实现它:
以下是如何使用它:
^{pr2}$注意,您的问题实际上与JSON没有任何关系,JSON是一种基于文本的数据序列化格式。您已经在处理反序列化的数据和python数据结构。在任何情况下,如果你真的想要你的问题的结果,你可以简单地做:
或者任何你喜欢加入的分隔符,比如一个简单的空格:
如果您对json文件的结构一无所知,我建议您将内容转储并在列表中搜索。一个快速的解决方法如下。它只假设
'text'
键对应于一个单词条目。在每个json文件的输出变成:
^{pr2}$相关问题 更多 >
编程相关推荐