【问题标题】:JSON insert and replace characters in js or python [duplicate]JSON在js或python中插入和替换字符[重复]
【发布时间】:2018-02-07 10:47:36
【问题描述】:

我有一个包含 500 个对象的数组的 JSON 文件,如下所示:

{
  "books":[
    {
      "title":"Title 1",
      "year":"2012",
      "authors":"Jack ; George",
      },
    {
      "title":"Title 2",
      "year":"2010",
      "authors":"Leonard ; Robin",
      },
    ...

我如何在 js 或 python 中遍历这个文件并将每个对象的“作者”更改为如下所示:

"authors":["Jack" , "George"]

谢谢。

【问题讨论】:

    标签: javascript python json


    【解决方案1】:

    我认为这段代码 sn-p 应该可以满足需要。

    var obj = {
      "books":[
        {
          "title":"Title 1",
          "year":"2012",
          "authors":"Jack ; George",
          },
        {
          "title":"Title 2",
          "year":"2010",
          "authors":"Leonard ; Robin",
          }]
      };
    for(var i in Object.keys(obj.books)){
      obj.books[i].authors = obj.books[i].authors.split(" ; ")
      
    
    
    }

    【讨论】:

      【解决方案2】:

      您只需将authors 拆分为;。对每个作者也调用trim 以删除多余的空格。

      const books = [
          {
            "title":"Title 1",
            "year":"2012",
            "authors":"Jack ; George",
          },
          {
            "title":"Title 2",
            "year":"2010",
            "authors":"Leonard ; Robin",
          }
      ];
      
      books.forEach(item =>  {
         item.authors = item.authors.split(';')
                                    .map(author => author.trim());
      });
      
      console.log(books);

      【讨论】:

        【解决方案3】:

        如果你使用python,你可以试试这个:

        data = {
            "books":[
              {
               "title":"Title 1",
               "year":"2012",
               "authors":"Jack ; George",
              },
              {
               "title":"Title 2",
               "year":"2010",
               "authors":"Leonard ; Robin",
              }
            ]
           }
        
        for k1 in data:
            for k2 in data[k1]:
                k2['authors'] = [x.strip() for x in k2['authors'].split(';')]
        
        print(data)
        

        哪些输出:

        {'books': [{'title': 'Title 1', 'year': '2012', 'authors': ['Jack', 'George']}, {'title': 'Title 2', 'year': '2010', 'authors': ['Leonard', 'Robin']}]}
        

        【讨论】:

          【解决方案4】:

          试试这个:-

          for i in a["books"]:
              i['authors'] = [x.strip() for x in (i['authors'].split(";"))]
          print(a)  #your output
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-04-26
            • 2018-10-22
            • 2016-06-06
            • 1970-01-01
            • 2015-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多