【问题标题】:json array with in array returning error ?bad string带有 in 数组的 json 数组返回错误?错误的字符串
【发布时间】:2016-10-07 18:32:01
【问题描述】:

我正在将我的 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 行出错

【问题讨论】:

  • 这不是一个有效的 json。如果字符串有模式,你可以实现一些逻辑将字符串转换为json。
  • 我真的不知道我在使用python并且必须传递一个json文件上面是training.json文件中的json
  • 您的 json 无效,请查看here 以获取有关正确 json 格式的更多信息。
  • 期望属性名称, 第 8 行出错
  • @Hamid:删除列表最后一个元素的逗号,JSON 对此很挑剔。

标签: javascript php python arrays json


【解决方案1】:

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"] 上多了一个逗号,我删除了它。

【讨论】:

    【解决方案2】:

    您的 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"
                              }
                   }
       }
      ]
      

    这意味着您的注释部分必须是这样的:

    "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"]
                 },
    

    【讨论】:

    • 这样使用 print data[0]["sentence"]["relations"]
    猜你喜欢
    • 2014-06-10
    • 2015-04-15
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2022-01-23
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多