JSON插入和替换js或python

时间:2018-02-07 10:47:37

标签: javascript python json

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

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

如何在js或python中循环遍历此文件并更改" authors"每个对象看起来像这样:

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

谢谢。

4 个答案:

答案 0 :(得分:1)

您只需将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);




答案 1 :(得分:1)

我认为这段代码应该是必要的。

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 :(得分:0)

如果你使用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']}]}

答案 3 :(得分:0)

试试这个: -

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