在Notepad++中删除JSON文件中除特定值字符串之外的所有代码

问题描述 投票:0回答:1

我有一个 JSON 文件中的艺术家列表。我想删除文件中除名称之外的所有代码。代码如下所示:

},
            {
                "name": "Sadek",
                "mbid": "52940c47-5d0a-4995-bbf8-361a365a48a0",
                "match": "0.100799",
                "url": "https://www.last.fm/music/Sadek",
                "image": [
                    {
                        "#text": "https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png",
                        "size": "small"
                    },
                    {

我想删除除“名称”值(Sadek)的包含字符串之外的所有内容。

我能得到的最接近的是使用

.*("name":  *).*
在 Notepad++ 中查找名称值,但我无法找到删除除名称值的包含字符串之外的所有内容的方法。

regex notepad++
1个回答
0
投票

这里有 2 个 Python 解决方案。仅使用您显示的示例进行编写和测试。

第一个解决方案:

re.findall
方法中使用正则表达式。

value="""},
            {
                "name": "Sadek",
                 "mbid": "52940c47-5d0a-4995-bbf8-361a365a48a0",
                "match": "0.100799",
                 "url": "https://www.last.fm/music/Sadek",
                 "image": [
                     {
                        "#text": "https://lastfm.freetls.fastly.net/i/u/34s/2a96cbd8b46e442fc41c2b86b821562f.png",
                        "size": "small"
                    },
                    {
"""

re.findall(r'(?:^.*?{\s+)("name":[^,]*,)(?:.*$)',value,re.M) 
['"name": "Sadek",']


第二个解决方案:使用

json
库。

import json
with open('Input_file.json', 'r') as fcc_file:
    fcc_data = json.load(fcc_file)

for j in fcc_data:
   if j == 'name':                   
     print(f'{j} {fcc_data[j]}')
© www.soinside.com 2019 - 2024. All rights reserved.