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

jk9hmnmh  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(148)

我有一个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"
                    },
                    {

我想删除除了“name”值(Sadek)的包含字符串之外的所有内容。
我能得到的最接近的方法是使用.*("name": *).*在Notepad++中找到名称值,但我无法找到一种方法来删除除了名称值的包含字符串之外的所有内容。

xwbd5t1u

xwbd5t1u1#

这里有两个Python的解决方案。仅使用所示样品编写和测试。

  • 第一种解决方案:* 在re.findall方法中使用正则表达式。
import re

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]}')

相关问题