问题描述
我正在使用一个充满 twitter bios 的大 .json 文件,并想提取 screen_names。 为了防止搜索也返回 bio 部分中提到的潜在用户,重要的是只提取每行的第一个匹配项。
当我在 Notepad++ 中打开文件时,我可以使用以下正则表达式来做到这一点:
(^.*?)\K"screen_name": "(\w+)"
在 python 中使用相同的作为 re.findall 或 re.search 的一部分不会导致任何匹配。
我对 Python 和 regex 都是全新的,所以我很确定我不完全了解所有必要的编码。
提前谢谢了!
1楼
正如其他用户所指出的,Python 和记事本使用不同的搜索代码,因此为了实现我想要的结果,我部署了以下代码:
import re
regex=re.compile(r'"screen_name":\s*"(\w+)"')
with open("followers.json", "r") as f:
for line in f:
output=regex.search(line)
with open("followers.txt", "a") as outp:
outp.write(output.group(1)+"\n")
这将分析您指定的 .json 文件,逐行读取它,并将每行的每个第一个匹配项保存在文件“followers.txt”中。