嗨,我想从这样的简单代码中提取主持人名称:
{
"_links": {},
"chatter_count": 2,
"chatters": {
"moderators": [
"nightbot",
"vivbot"
],
"staff": [],
"admins": [],
"global_mods": [],
"viewers": []
}
}
我一直在尝试使用\“ moderators \”:\ s * [(\ s * \“ \ w * \” \,)\ s *]来抓取主持人,但没有成功。我主要在json解析中使用正则表达式来应对挑战。
最佳答案
moderators = list()
first = re.compile(r'moderators.*?\[([^\]]*)', re.I)
second = re.compile(r'"(.*?)"')
strings = first.findall(string)
for strings2 in strings:
moderators = moderators + second.findall(strings2)
这应该可以解决问题
第一个正则表达式提取2个方括号之间的所有内容。第二个正则表达式从中提取字符串。
为了便于阅读和易于编写,我将其分解为2个正则表达式
现在,使用json模块,您可以做一些简单的事情:
import json
a = json.loads(string)
moderators = a['chatters']['moderators']