Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用re将CSV单元格值用作正则表达式字符串_Python_Regex - Fatal编程技术网

在Python中使用re将CSV单元格值用作正则表达式字符串

在Python中使用re将CSV单元格值用作正则表达式字符串,python,regex,Python,Regex,所以我有一个CSV文档,每行有元数据、XPATH和正则表达式字符串。脚本使用xpath来迭代API请求,然后我想使用存储在CSV中的正则表达式和该xpath来搜索API结果中的内容。我的问题是如何使用CSV行中的数据作为文本regex搜索字符串,比如r'^\w{2}.+'与要搜索的字符串 with open(rules, 'r+') as rulefile: rreader = csv.DictReader(rulefile) for row in rreader:

所以我有一个CSV文档,每行有元数据、XPATH和正则表达式字符串。脚本使用xpath来迭代API请求,然后我想使用存储在CSV中的正则表达式和该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)

所以我想我可能已经找到了一个解决办法,虽然我不确定这是最好的。。。如果有人有更好的方法,欢迎提供帮助

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()]

问题是什么?它不起作用了?你有错误吗?没有它只是返回。。。[] [] [] [] [] [] [] [] [] []