正则表达式与python中的json匹配

正则表达式与python中的json匹配,python,regex,Python,Regex,iam无法从python中的字符串获取json对象。我需要得到项目:从响应文本。我试过了 [items?:?]\s(\".*\") ReactDOM.render(React.createElement(BoxedLinksListView, { initialState: { items: [{ link: "https://www.sehir.edu.tr/en/academics/colleg

iam无法从python中的字符串获取json对象。我需要得到项目:从响应文本。我试过了

[items?:?]\s(\".*\")

ReactDOM.render(React.createElement(BoxedLinksListView, {
            initialState: {
                items: [{
                    link: "https://www.sehir.edu.tr/en/academics/college-of-humanities-and-social-sciences",
                    sort: 1,
                    parentTitle: "",
                    title: "College of Humanities and Social Sciences"
                }, {
                    link: "https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics",
                    sort: 82,
                    parentTitle: "Graduate School of Business",
                    title: "MBA in Islamic Finance and Economics (Thesis)"
                }, {
                    link: "https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics",
                    sort: 83,
                    parentTitle: "Graduate School of Business",
                    title: "MBA in Islamic Finance and Economics (Non-thesis)"
                }]
            }
        }

使用RegexJson模块

演示:

import re
import json
s = """ReactDOM.render(React.createElement(BoxedLinksListView, {
            initialState: {
                items: [{
                    link: "https://www.sehir.edu.tr/en/academics/college-of-humanities-and-social-sciences",
                    sort: 1,
                    parentTitle: "",
                    title: "College of Humanities and Social Sciences"
                }, {
                    link: "https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics",
                    sort: 82,
                    parentTitle: "Graduate School of Business",
                    title: "MBA in Islamic Finance and Economics (Thesis)"
                }, {
                    link: "https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics",
                    sort: 83,
                    parentTitle: "Graduate School of Business",
                    title: "MBA in Islamic Finance and Economics (Non-thesis)"
                }]
            }
        }"""

data = re.findall(r"items\:\s+.*\]", s, flags=re.MULTILINE|re.DOTALL)[0]
data = "{" + re.sub("([a-zA-Z]+)\:", r'"\1":', data).replace('""https"', '"https') + "}"
print (json.loads(data))
{u'items': [{u'sort': 1, u'parentTitle': u'', u'link': u'https://www.sehir.edu.tr/en/academics/college-of-humanities-and-social-sciences', u'title': u'College of Humanities and Social Sciences'}, {u'sort': 82, u'parentTitle': u'Graduate School of Business', u'link': u'https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics', u'title': u'MBA in Islamic Finance and Economics (Thesis)'}, {u'sort': 83, u'parentTitle': u'Graduate School of Business', u'link': u'https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics', u'title': u'MBA in Islamic Finance and Economics (Non-thesis)'}]}
输出:

import re
import json
s = """ReactDOM.render(React.createElement(BoxedLinksListView, {
            initialState: {
                items: [{
                    link: "https://www.sehir.edu.tr/en/academics/college-of-humanities-and-social-sciences",
                    sort: 1,
                    parentTitle: "",
                    title: "College of Humanities and Social Sciences"
                }, {
                    link: "https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics",
                    sort: 82,
                    parentTitle: "Graduate School of Business",
                    title: "MBA in Islamic Finance and Economics (Thesis)"
                }, {
                    link: "https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics",
                    sort: 83,
                    parentTitle: "Graduate School of Business",
                    title: "MBA in Islamic Finance and Economics (Non-thesis)"
                }]
            }
        }"""

data = re.findall(r"items\:\s+.*\]", s, flags=re.MULTILINE|re.DOTALL)[0]
data = "{" + re.sub("([a-zA-Z]+)\:", r'"\1":', data).replace('""https"', '"https') + "}"
print (json.loads(data))
{u'items': [{u'sort': 1, u'parentTitle': u'', u'link': u'https://www.sehir.edu.tr/en/academics/college-of-humanities-and-social-sciences', u'title': u'College of Humanities and Social Sciences'}, {u'sort': 82, u'parentTitle': u'Graduate School of Business', u'link': u'https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics', u'title': u'MBA in Islamic Finance and Economics (Thesis)'}, {u'sort': 83, u'parentTitle': u'Graduate School of Business', u'link': u'https://www.sehir.edu.tr/en/academics/graduate-school-of-business/mba-in-islamic-finance-and-economics', u'title': u'MBA in Islamic Finance and Economics (Non-thesis)'}]}

请使用JSON解析器来处理JSON内容,而不是正则表达式。上面是字符串,我需要为项目匹配正则表达式。我可以抓取项目列表,然后转换为json。正如前面提到的,不要这样做!那就用一把枪!之后,您可以使用该值执行任何操作。regex无法进行流控制,无法找到匹配的括号。或者可能没有人理解您的问题,在这种情况下,您应该更清楚地了解您想要谈论的json解析器!给定的文本/格式在JSON中无效。您可以访问该链接吗?不,我无法访问该链接。请帮助我。很遗憾,我无法访问您在评论中提到的任何链接。