首页 > 编程语言 >python json.dump 将字典写文件json文件后多了一个花括号"}",读取时报错:json.decoder.JSONDecodeError: Extra data: l

python json.dump 将字典写文件json文件后多了一个花括号"}",读取时报错:json.decoder.JSONDecodeError: Extra data: l

时间:2023-12-29 15:27:31浏览次数:37  
标签:文件 读取 dump res json Pass

问题复现

我的字典格式:

import json

d = {'Demo': {'Total_Result': 'Pass', 'info': {'test3': 'Pass'}},
     '10.0.0.111': {'Total_Result': 'Pass', 'info': {'test_double_display': 'passed', 'test_ddr_pcie': 'passed'}}}

with open('xxx.json', 'r+') as f:  # 注意这里r+ 是可读可写
    json.dump(d, f)

with open('xxx.json', 'r+') as f:
    res = json.load(f)

print(res)

这个代码会概率出现报错:json.decoder.JSONDecodeError: Extra data: line 。原因是因为在写入json的时候多了一个},导致json格式错误读取失败。

问题解决

修改后代码:

import json

d = {'Demo': {'Total_Result': 'Pass', 'info': {'test3': 'Pass'}},
     '10.0.0.111': {'Total_Result': 'Pass', 'info': {'test_double_display': 'passed', 'test_ddr_pcie': 'passed'}}}

with open('xxx.json', 'w+') as f:  # 注意这里w+ 是可读可写
    json.dump(d, f)

with open('xxx.json', 'r+') as f:
    res = json.load(f)

print(res)

修改点就在:在写入json文件的时候采用w+,不采用r+ 虽然都是可读可写,但是在写json文件的时候确实出现了不可思议的事情。

总结:

这个报错就是json.load在读取json文件的时候,json格式有问题。原因有很多,我的问题就是使用r+导致写的json文件中多了一个},然后再读取的时候就报错了

标签:文件,读取,dump,res,json,Pass
From: https://www.cnblogs.com/tarzen213/p/17934923.html

相关文章

  • python 修改ini文件参数,保留ini文件注释的方法--未测试
    使用configparser模块的write()方法在写入INI文件时默认会删除注释。要保留注释,您可以使用自定义的格式化器来处理INI文件的内容,并在写入文件时手动添加注释。下面是一个示例代码,演示如何自定义一个格式化器,并在写入INI文件时保留注释:python复制代码importconfigparser......
  • swift icloud 存储文件
     importUIKit///文件下载classVehicleDownloadFilemanager:NSObject,UIDocumentPickerDelegate{///创建单例对象staticletshare=VehicleDownloadFilemanager()privateoverrideinit(){}funcdownloadFile(fileUrl:String?){......
  • 前端使用a标签下载非同源文件(备选方案)
    原理:下载文件Blob,再把Blob转为本地链接,以实现跨域变同域,最后使用a标签实现下载;优缺点:●优点:能达到下载跨域文件的目的;●缺点:不适用于大文件,大文件体验较差;示例:使用fetch把文件下载下来,然后URL.createObjectURL转为本地链接,最后使用a标签下载;/***跨域文件下载......
  • Linux系统日志文件介绍
    Linux系统文件通常在/var/log中下面,主要有以下日志:/var/log/message---------------------------------------系统启动后的信息和错误日志/var/log/secure------------------------------------------与安全相关的日志信息/var/log/maillog-------------------------------......
  • 【北亚服务器数据恢复】san环境下LUN Mapping出错导致文件系统一致性出错的数据恢复案
     服务器数据恢复环境:san环境下的存储上一组由6块硬盘组建的RAID6,划分为若干LUN,MAP到跑不同业务的服务器上,服务器上层是SOLARIS操作系统+UFS文件系统。服务器故障:业务需求需要增加一台服务器跑新增的应用,工作人员在原服务器在线的状态下将其中一个lun映射到一台新服务器上。实际......
  • Nginx reload重新加载配置文件的异常情况
    Nginxreload重新加载配置文件的异常情况背景临近年底,很多业务工作量都上来了.今天同事告知,nginx的log里面出现了大量的toomanyopenfiles的提示信息.并且同事明确说明,已经修改了/etc/secuirty/limits.conf以及worker_connections这两个参数.并且已经第一时......
  • 关于IDEA报 java: 无法访问java.lang.Record 找不到java.lang.Record的类文件
    IDEA一直报java:无法访问java.lang.Record  找不到java.lang.Record的类文件,但是我已经把所有的java配置改成了17。最后发现是pom文件中org.apache.maven.plugins配置没有改。属性修改如下:<configuration><compilerVersion>1.8</compilerVersion>-......
  • Go 语言实现读取 pdf 文件内容
    本篇介绍一个如何在go语言环境下,如何解析/读取pdf文件内容从而进行一些业务逻辑。本篇将会介绍两种方案,可以按自己的需求进行对比和最终选择。1.背景最近在帮朋友做一个小的程序,帮他减少一些人工繁琐的工作,将一些机器可以做的事情交给机器,提高效率他效率。需求也相对简......
  • js 利用Audio播放文件列表
    1、主要利用Audio的监听事件addEventListener,监听到声音播放结束ended,播放下一个文件audio.addEventListener('ended',function(){console.log('音频播放结束');});2、示例:varvoiceList=['1.wav','2.wav','3.wav']varvoiceInde......
  • 在Python中,如果你想查找特定的SQLite数据库文件(例如'mydatabase.db'),你可以使用os模块
    这是Python中os.walk()函数的常见用法¹²⁴⁵⁶。os.walk()函数用于递归遍历指定目录及其子目录,并返回一个生成器,每次迭代都会返回一个包含三个元素的元组:当前目录的路径、当前目录下所有子目录的列表和当前目录下所有文件的列表¹²⁴⁵⁶。在fordirpath,dirnames,filenamesi......