【问题标题】:What is wrong with this json.load?这个 json.load 有什么问题?
【发布时间】:2020-04-16 21:37:52
【问题描述】:

我在 python 3 中有这段代码

import json
with open('calldb.json', 'r') as G:
    data = json.load(G)
    print(data)

还有这个json文件

[
   {
     "n": {
       "identity": 0,
       "labels": [
         "Service",
         "Test"
       ],
       "properties": {
         "name": "Service1",
         "uid": "XD2020",
         "state": "new",
         "type": "internetDualhome"
       }
     }
   },
   {
     "n": {
       "identity": 1,
       "labels": [
         "Test",
         "intpe"
       ],
       "properties": {
         "name": "Pe1",
         "ip": "172.20.20.1/32"
--------skipped lines-----------

那些省略的行是为了不共享整个文件

当我运行程序时出现此错误

从 None 提高 JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)

这个 json 有什么问题?

【问题讨论】:

  • 您的 JSON 被截断并显示“跳行”。它肯定不会那样工作。

标签: python json file load


【解决方案1】:

您是否添加了跳线?如果您没有添加该行,则您的文件未格式化为有效的 JSON。

如果您添加了该行,我建议您根据 JSON 模式检查您的 JSON 文件。您可能没有正确的支架或卷曲在正确的位置。

我过去使用过这个JSON schema validator,发现它们的语法很有帮助。如果您不确定要在下拉列表中选择哪个版本的架构,我建议默认为 Draft v4

【讨论】:

  • 不,省略的那些行不是为了打所有的json
  • @Alan 我添加了一个验证器的链接,该链接过去曾帮助过我。试一试,让我们知道您的结果!
猜你喜欢
  • 2012-05-26
  • 2021-08-20
  • 2015-09-23
  • 2021-02-27
  • 2012-03-10
  • 2010-11-01
  • 2011-08-26
  • 1970-01-01
  • 2016-06-28
相关资源
最近更新 更多