带有in数组的json数组返回错误?bad string

时间:2016-10-07 18:32:02

标签: javascript php python arrays json

我正在将我的json字符串文件解析为python并始终返回错误。 我使用在线json格式化程序和验证器也返回错误所以我想帮助使我的json正确并告诉我错误

 [{
     "sentence_id": "TR.00001",
     "sentence": {

         "text": "Bill was born 1986.",
         "annotation": {
             (1, "Bill", "bill", "NNP", "B-PERSON"),
             (2, "was", "be", "VBD", "O"),
             (3, "born", "bear", "VBN", "O"),
             (4, "1986", "BIL", "CD", "B-DATE"),
             (5, ".", ".", ".", "O"),

         },
         "relations": {
             "subject": "bill",
             "predicate": "DATE of Birth",
             "object": "1986"
         }
     }
 }, ]

以上是我的json字符串你可以查看在线验证器或在线json格式验证器这里是json返回错误的一部分

"annotation": {
    (1, "Bill", "bill", "NNP", "B-PERSON"),
    (2, "was", "be", "VBD", "O"),
    (3, "born", "bear", "VBN", "O"),
    (4, "1986", "BIL", "CD", "B-DATE"),
    (5, ".", ".", ".", "O"),
},

那么请你帮我解决使用json在数组中使用数组的问题你可以使用这些编辑器链接link to json editor

  

预计第8行中的属性名称,错误

2 个答案:

答案 0 :(得分:2)

JSON不了解元组,尝试更改为列表:

"annotation": [
    [1, "Bill", "bill", "NNP", "B-PERSON"],
    [2, "was", "be", "VBD", "O"],
    [3, "born", "bear", "VBN", "O"],
    [4, "1986", "BIL", "CD", "B-DATE"],
    [5, ".", ".", ".", "O"]
]

你可以tuple(list)转换回另一端的元组。

另外,您在[5, ".", ".", ".", "O"]上有一个额外的逗号,我删除了它。

答案 1 :(得分:1)

您的json字符串文件不正确它有一些错误...

  1. 你错过了注释中的关键。
  2. 您的值必须在大写字母中,因为它是一个数组。
  3. 最后添加额外的逗号。

     [
       {
       "sentence_id" : "TR.00001",
       "sentence"  : {
    
                "text" : "Bill was born 1986.",
                "annotation":{
                               "1": [1,"Bill" , "bill" , "NNP" ,"B-PERSON"],
                               "2":[2, "was" , "be" , "VBD" , "O"],
                               "3": [3 , "born" , "bear" , "VBN", "O"],
                               "4":[4, "1986" , "BIL" , "CD" , "B-DATE"],   
                               "5":[5, "." , "." , ".","O"]
                              }, 
                "relations":{
                              "subject":"bill",
                              "predicate":"DATE of Birth",
                              "object":"1986"
                            }
                 }
     }
    ]
    
  4. 这意味着您的注释部分必须如下:

    "annotation":{
                  "1": [1,"Bill" , "bill" , "NNP" ,"B-PERSON"],
                  "2":[2, "was" , "be" , "VBD" , "O"],
                  "3": [3 , "born" , "bear" , "VBN", "O"],
                  "4":[4, "1986" , "BIL" , "CD" , "B-DATE"],   
                  "5":[5, "." , "." , ".","O"]
                 },