首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据特定字符串删除json行

根据特定字符串删除json行
EN

Stack Overflow用户
提问于 2020-12-06 16:45:49
回答 1查看 89关注 0票数 1

我有一个json文件,其内容如下:

代码语言:javascript
复制
[{"headline":"Ntugamo court issues criminal summons against Rukutana",
"url_src":"\/news\/headlines\/67240-ntugamo-court-issues-criminal-summons-against-rukutana"},
{"headline":"Corruption: Equal Opportunities Commission boss granted bail",
"url_src":"\/news\/headlines\/67239-corruption-equal-opportunities-commission-boss-granted-bail"},
{"headline":"Bobi Wine to launch corruption manifesto in Mbarara rejects EC security team",
"url_src":"https:\/\/www.monitor.co.ug"}]

我正在试图查找和删除{}中包含“腐败”一词的所有部分,包括花括号本身。

例如,在本例中,.py脚本将删除

代码语言:javascript
复制
{"headline":"Corruption: Equal Opportunities Commission boss granted bail",

"url_src":"/news/headlines/67239-corruption-equal-opportunities-commission-boss-granted-bail"}

同时移除

代码语言:javascript
复制
{"headline":"Bobi Wine to launch corruption manifesto in Mbarara rejects EC security team","url_src":"https:\/\/www.monitor.co.ug"}

这在Python2.7中有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-06 16:52:06

您可以使用一个列表理解来迭代list中的每个dict

在每次迭代中将每个字典转换为一个字符串,并使用if "corruption" not in str(d).lower()来检查字符串"corruption"是否位于小写字符串中。如果没有,那就保留它:

代码语言:javascript
复制
import json

with open("j.json", "rb") as f:
    lst = json.load(f)

lst = [d for d in lst if "corruption" not in str(d).lower()]

print(lst)

输出:

代码语言:javascript
复制
[{'headline': 'Ntugamo court issues criminal summons against Rukutana',
  'url_src': '/news/headlines/67240-ntugamo-court-issues-criminal-summons-against-rukutana'}]

如果要将列表写入json文件,请使用json.dump

代码语言:javascript
复制
with open("j.json", "w", encoding="utf8") as f:
    json.dump(lst, f)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65170534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档