Python3中如何处理json解码时期望的属性名被括号包围的异常?

2026-05-21 15:101阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计688个文字,预计阅读时间需要3分钟。

Python3中如何处理json解码时期望的属性名被括号包围的异常?

1. 背景及问题:在从文件中加载json内容时,出现一个之前未出现的奇怪错误。检查了多处,代码从表面上看没有问题。具体代码及错误信息如下:

+ 代码: python import json

with open('data.json', 'r') as file: data=json.load(file)

+ 错误信息: jsonDecodeError: Expecting value: line 1 column 1 (char 0)

1.背景

  在练习json从文件中loads文件内容时出现一个之前没有出现的奇怪报错,检查了很多遍,代码从表面上来看没有任何问题。具体代码以及报错见以下。

  

  看看文件中的信息

  

  完全没有感觉那里有错误,之前也没遇到过,并且这行字符输入到python解释器里面查看类型为字典,是正常的。

2.解决

  网上各种办法都试了一下,还是没有解决,都说要调整什么db.read()这样的读取方式什么的,或者说int类型不能加上引号,尝试了半天,各种方式都没有用。最后发现,短短几行代码,居然有2处问题。而且和网上给出的答案情况都不太一样。

  1.文件操作的read()读取一遍会后就为空,再次去json.loads()的时候内容为空,所以报错。

  

  不信的话我们print (db.read()2次来看看

  

  2.文件里面的字符串不能使用单引号’’,只能使用双引号,这个本人也是偷懒,又有单引号,又有双引号,所以导致一直报错。

  首先注释一下print (db.read())方便测试

  

Python3中如何处理json解码时期望的属性名被括号包围的异常?

  此时user_info文件内的字符串是这样的,使用的是单引号

  

  现在执行main看看报什么错。

  

  对比第一个问题,没有None这个报错了,但是还是报错。

  我们现在尝试把user_info里面的单引号全部替换成为双引号。

  

  再次执行查看结果

  

3.总结

  出现这2个错误一个是因为没有对文件操作有一个深入的了解,不清楚db.read()之后就没有数据了,第二个问题可能python自己会做一些数据处理,所以不管单双引号输入到python解释器都会解析为字典类型,可能这次因为练习作业,碰到了这种场景,单双引号自己混用,导致了这个问题。

作者:小家电维修

转世燕还故榻,为你衔来二月的花。



本文共计688个文字,预计阅读时间需要3分钟。

Python3中如何处理json解码时期望的属性名被括号包围的异常?

1. 背景及问题:在从文件中加载json内容时,出现一个之前未出现的奇怪错误。检查了多处,代码从表面上看没有问题。具体代码及错误信息如下:

+ 代码: python import json

with open('data.json', 'r') as file: data=json.load(file)

+ 错误信息: jsonDecodeError: Expecting value: line 1 column 1 (char 0)

1.背景

  在练习json从文件中loads文件内容时出现一个之前没有出现的奇怪报错,检查了很多遍,代码从表面上来看没有任何问题。具体代码以及报错见以下。

  

  看看文件中的信息

  

  完全没有感觉那里有错误,之前也没遇到过,并且这行字符输入到python解释器里面查看类型为字典,是正常的。

2.解决

  网上各种办法都试了一下,还是没有解决,都说要调整什么db.read()这样的读取方式什么的,或者说int类型不能加上引号,尝试了半天,各种方式都没有用。最后发现,短短几行代码,居然有2处问题。而且和网上给出的答案情况都不太一样。

  1.文件操作的read()读取一遍会后就为空,再次去json.loads()的时候内容为空,所以报错。

  

  不信的话我们print (db.read()2次来看看

  

  2.文件里面的字符串不能使用单引号’’,只能使用双引号,这个本人也是偷懒,又有单引号,又有双引号,所以导致一直报错。

  首先注释一下print (db.read())方便测试

  

Python3中如何处理json解码时期望的属性名被括号包围的异常?

  此时user_info文件内的字符串是这样的,使用的是单引号

  

  现在执行main看看报什么错。

  

  对比第一个问题,没有None这个报错了,但是还是报错。

  我们现在尝试把user_info里面的单引号全部替换成为双引号。

  

  再次执行查看结果

  

3.总结

  出现这2个错误一个是因为没有对文件操作有一个深入的了解,不清楚db.read()之后就没有数据了,第二个问题可能python自己会做一些数据处理,所以不管单双引号输入到python解释器都会解析为字典类型,可能这次因为练习作业,碰到了这种场景,单双引号自己混用,导致了这个问题。

作者:小家电维修

转世燕还故榻,为你衔来二月的花。