解析Python/json亵渎fi中的整个术语

2024-04-20 01:16:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个json文件,其中包含要检查亵渎过滤器的术语。在

["bad", "word", "plug"]

我正在使用这个(从另一篇文章中找到)来解析json并在任何数据对象中搜索set words。在

^{pr2}$

问题是,如果我使用字符串“plumber”,由于json文件中的单词“plug”,检查失败。因为“plu”两个词都有。有没有办法强制json文件中的整个单词而不是部分单词?一旦运行输出无误:

^{3}$

Tags: 文件数据对象字符串json过滤器文章单词
1条回答
网友
1楼 · 发布于 2024-04-20 01:16:12

你可以用字符串.拆分()作为分离字段名称的整个单词的方法。拆分时,它将返回按指定分隔符拆分的字符串的每个部分的列表。使用它,你可以检查这个亵渎的词是否在拆分列表中:

import json

with open('terms.json') as data_file:    
    data = json.load(data_file)

for field_name in field_names:
    for term in data:
        if term in field_name.split(" "):
            self.add_validation_error(
                field_name,
                "%s has profanity" % field_name)

如果有标点符号或类似的东西,这是不可能的。例如,“太阳来了”这句话不会和坏词“太阳”匹配,也不会与“这里”匹配。要解决大写问题,您需要将整个输入改为小写:

^{pr2}$

删除标点有点复杂,但是this应该可以帮助您实现这一点。在

你可能需要考虑更多的边缘情况,所以我想了两个简单的例子。在

相关问题 更多 >