在Python中使用re将CSV单元格值用作正则表达式字符串
所以我有一个CSV文档,每行有元数据、XPATH和正则表达式字符串。脚本使用xpath来迭代API请求,然后我想使用存储在CSV中的正则表达式和该xpath来搜索API结果中的内容。我的问题是如何使用CSV行中的数据作为文本regex搜索字符串,比如在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:
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()]
问题是什么?它不起作用了?你有错误吗?没有它只是返回。。。[] [] [] [] [] [] [] [] [] []