有人可以从每一行中提取特定的单词组吗

Can someone to extract in specific group of words from each line

我有一个列表,其中存储了以下单词。我如何将 [ 和 ] 中的句子分开,例如在破折号 [0] 中,我需要说明的是星期日简介:Panth 与其他人相遇的财富。我想在每个组中这样做并存储它。 -

dash = ['{"Headlines": ["The Sunday Profile: Panth meets Wealth"]}\n', '{"Headlines": ["Wage no bar"]}\n']

我试过了-

 for line in f:
    text = line
            
    

print(text)

但是只打印最后一行

from ast import literal_eval
dash = ['{"Headlines": ["The Sunday Profile: Panth meets Wealth"]}\n', 
'{"Headlines": ["Wage no bar"]}\n']
for i in dash:
    print(literal_eval(i)["Headlines"])

我建议您以后在 asking a good question. You should also be sure to provide a minimal, reproducible example 上遵循 Whosebug 的指导。

话虽如此,假设 dash 列表中的值始终是 json 并且始终有一个标题,您可以使用列表理解来获取所有标题的新列表。

import json

dash = ['{"Headlines": ["The Sunday Profile: Panth meets Wealth"]}\n', '{"Headlines": ["Wage no bar"]}\n']

headlines = [json.loads(x)["Headlines"][0] for x in dash]

新变量 headlines 将包含您要查找的所有项目。如果 dash 列表中的 Headlines 可以有多个值,我建议将它们保留为列表并从所述解决方案中删除 [0] 索引。

创建一个将字符串转换为字典的函数和returns值的第一项

import json
def get_first_item(s):
    return json.loads(s).values()[0][0]

然后将函数映射到列表

for line in map(get_first_item, dash):
    print(line)

给予

The Sunday Profile: Panth meets Wealth
Wage no bar