猿问

查找与JSON中的特定键值对匹配的给定格式的正则表达式

'{“ id”:1,“ last”:“ Doe”,“ first”:“ John”,“ location”:{“ city”:“ Oakland”,“ state”:“ CA”,“ postalCode”:“ 94607“},” active“:true}','{” id“:2,” last“:” Doe“,” first“:” Jane“,” location“:{” city“:” San Francisco“, “ state”:“ WA”,“ postalCode”:“ 94105”},“ active”:false}','{“ id”:3,“ last”:“ Doe”,“ first”:“ Jane”,“ location“:{” city“:” San Francisco“,” state“:” CA“,” postalCode“:” 94105“},” active“:true}'

我正在寻找包含'{“ id”:1}'的json包含。或者我正在寻找包含“'{“ location”:{“ state”:“ CA”},“ active”:true}'的json包含...同样...

因此,对于'{“ id”:1}',它应该返回

{{“ id”:1,“ last”:“ Doe”,“ first”:“ John”,“ location”:{“ city”:“ Oakland”,“ state”:“ CA”,“ postalCode”:“ 94607“},”活动“:true}

对于'{“ location”:{“ state”:“ CA”},“ active”:true}',它应返回

{“ id”:1,“ last”:“ Doe”,“ first”:“ John”,“ location”:{“ city”:“ Oakland”,“ state”:“ CA”,“ postalCode”:“ 94607 “},” active“:true} {” id“:3,” last“:” Doe“,” first“:” Jane“,” location“:{” city“:” San Francisco“,” state“: “ CA”,“ postalCode”:“ 94105”},“ active”:true}


慕勒3428872
浏览 325回答 2
2回答

哆啦的时光机

试试这个: (.*"state":"CA".*"active":true.*)演示:https : //regex101.com/r/hP6gS1/238有用。您可以根据需要更改标签名称和值。它提取您所需的JSON内容。

蝴蝶不菲

Python版本my_json = """[    {       "id": 1,       "last": "Doe",       "first": "John",       "location": {          "city": "Oakland",          "state": "CA",          "postalCode": "94607"       },       "active": true    }, {       "id": 2,       "last": "Doe",       "first": "Jane",       "location": {          "city": "San Francisco",          "state": "WA",          "postalCode": "94105"       },       "active": false    }, {       "id": 3,       "last": "Doe",       "first": "Jane",       "location": {          "city": "San Francisco",          "state": "CA",          "postalCode": "94105"       },       "active": true    }]"""import jsonmy_list = json.loads(my_json)result_list = list(filter(        lambda d:            d["id"] == 1 or \            (d["location"]["state"] == "CA" and d["active"]),        my_list        ))
随时随地看视频慕课网APP

相关分类

Java
我要回答