当前位置: 首页 > news >正文

解决json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

前言

        作者在读取json文件的时候出现上述报错,起初以为是自己json文件有问题,但借助在线工具查看后发现没问题,就卡住了,在debug的过程中发现了json文件读取的一个小坑,在此分享一下

解决过程

原代码

with open(annotations_file) as f:lenth = len(json.load(f)["annotations"])#print(json.load(f)["annotations"])if is_train:data = json.load(f)["annotations"][0:int(lenth*0.8)]else:data = json.load(f)["annotations"][int(lenth*0.8):]

乍一看这个代码没有什么问题,但是作者发现lenth可以拿到数据,但是data执行时会报错,这就很奇怪,两行代码关于json文件读取的操作是一致的,为什么就是不行,后边作者加了print发现也会报错,因此得到结论,在一个with里不能加载两次

修改后代码

with open(annotations_file) as f:data = json.load(f)["annotations"]length = len(data)if is_train:data = data[:int(length * 0.8)]else:data = data[int(length * 0.8):]

问题解决

http://www.lryc.cn/news/513297.html

相关文章:

  • hive中的四种排序类型
  • Spring-AI讲解
  • 【brew安装失败】DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0
  • HTML——29. 音频引入二
  • 代码随想录训练营第三十四天| 62.不同路径 63. 不同路径 II
  • V90伺服PN版组态配置<一>
  • 又一年。。。。。。
  • xterm + vue3 + websocket 终端界面
  • 医疗数仓业务数据采集与同步
  • 数字孪生智慧水利与水务所包含的应用场景有哪些?二者有何区别
  • Qt Creator项目构建配置说明
  • 进程间通信的“五大武器”
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(六)
  • 封装echarts成vue component
  • uniapp Stripe 支付
  • Windows onnxruntime编译openvino
  • vue3+TS+vite中Echarts的安装与使用
  • 期末算法分析程序填空题
  • 搭建android开发环境 android studio
  • R语言6种将字符转成数字的方法,写在新年来临之际
  • RocketMQ学习笔记(持续更新中......)
  • 强化学习的基础概念
  • excel怎么删除右边无限列(亲测有效)
  • STM32-笔记23-超声波传感器HC-SR04
  • Linux | Ubuntu零基础安装学习cURL文件传输工具
  • 什么是 GPT?Transformer 工作原理的动画展示
  • SpringCloudAlibaba实战入门之路由网关Gateway过滤器(十三)
  • 电路仿真软件PSIM简介
  • C语言:调试的概念和调试器的选择
  • 25. C++继承 1 (继承的概念与基础使用, 继承的复制兼容规则,继承的作用域)