在Python中使用re将CSV单元格值用作regex字符串

2024-06-26 13:45:39 发布

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

所以我有一个CSV文档,每行有元数据、XPATH和Regex字符串。脚本使用xpath来迭代API请求,然后我想使用存储在CSV中的regex和该xpath来搜索API结果中的内容。我的问题是如何使用CSV行中的数据作为文本regex搜索字符串,比如r'^\w{2}.+'与要搜索的字符串。你知道吗

with open(rules, 'r+') as rulefile:
    rreader = csv.DictReader(rulefile)
    for row in rreader:
        for ip, apikey in keydict.iteritems():
            rulequery = {'type': 'config', 'action': 'get', 'key': apikey, 'xpath': row["xpath"]}
            rrule = requests.get('https://' + ip + '/api', params = rulequery, verify=False)
            rrex = re.compile('{}'.format(row["regex"]), re.MULTILINE)
            for line in rrule.text:
                config = rrex.findall(line)
                print(config)

Tags: csv数据字符串inipapiconfigfor
1条回答
网友
1楼 · 发布于 2024-06-26 13:45:39

所以我想我可能已经找到了一个解决办法,虽然我不确定这是最好的。。。如果有人有更好的方法,可以寻求帮助。你知道吗

with open(rules, 'r+') as rulefile:
rreader = csv.DictReader(rulefile)
for row in rreader:
    for ip, apikey in keydict.iteritems():
        regex = row["regex"]
        rulequery = {'type': 'config', 'action': 'get', 'key': apikey, 'xpath': row["xpath"]}
        rrule = requests.get('https://' + ip + '/api', params = rulequery, verify=False)
        config = re.search(regex, rrule.text)
        print rrule.text[config.start():config.end()]

相关问题 更多 >