首页 > 数据库 >读取数据库JSON格式数据信息处理办法记录

读取数据库JSON格式数据信息处理办法记录

时间:2023-05-22 15:57:12浏览次数:71  
标签:load result02 信息处理 读取 self json result03 JSON str

遇到的问题:

现有代码如下

def ListQuery(self):

  sql01="SELECT content FROM zt_user_customdata \
    WHERE realname='alarm-server' AND account='alarm-server'"         
    result01= self.CommonQueryFunc(sql01) 
    result02 = str(result01[0][0]).strip()
    result03 =json.load(result02) 
    return result03

 

但是运行后报错如下:

Traceback (most recent call last): File "C:\Users\Administrator\eclipse-workspace\ZZ-ServerControl\src\AlarmFiltering.py", line 56, in <module> A = AlarmFiltering() File "C:\Users\Administrator\eclipse-workspace\ZZ-ServerControl\src\AlarmFiltering.py", line 13, in __init__ self.ListQueryResult = self.ListQuery() File "C:\Users\Administrator\eclipse-workspace\ZZ-ServerControl\src\AlarmFiltering.py", line 22, in ListQuery result03 =json.load(result02) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 293, in load return loads(fp.read(), AttributeError: 'str' object has no attribute 'read' 

这个错误的原因是 json.load() 函数需要一个 file-like object 作为参数,但 result02 是一个 str 对象,所以 json.load() 函数无法解析这个对象。要解决这个问题,可以通过将 result02 转换为 file-like object,可以使用 io.StringIO 类来创建一个临时的 file-like object,然后将 result02 的值写入临时对象中,最后传入 json.load() 函数即可。代码示例如下:

import io

def ListQuery(self):
  sql01 = "SELECT content FROM zt_user_customdata WHERE realname='alarm-server' AND account='alarm-server'"
  result01 = self.CommonQueryFunc(sql01)
  result02 = str(result01[0][0]).strip()
  temp_file = io.StringIO(result02)
  result03 = json.load(temp_file)
  return result03

 

这段代码使用 io.StringIO() 创建临时文件对象,然后使用 write() 方法将 str 对象 result02 写入文件对象中。最后,使用 json.load() 函数读取临时文件对象并返回解析结果。

 

标签:load,result02,信息处理,读取,self,json,result03,JSON,str
From: https://www.cnblogs.com/babashi9527/p/17420816.html

相关文章

  • Python 读取文件首行和最后一行
    常规方法:从前往后依次读取步骤:open打开文件。读取文件,把文件所有行读入内存。遍历所有行,提取指定行的数据。优点:简单,方便缺点:当文件大了以后时间太慢,无法忍受fname='test.html'withopen(fname,'r',encoding='utf-8')asf:#打开文件lines=f.readlines()#......
  • 一文读懂面试官都在问的Fastjson漏洞
    Fastjson1.2.24-RCE漏洞漏洞简介fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将JavaBean序列化成JSON字符串,这样得到字符串之后就可以通过数据库等方式......
  • sql server Json简单操作
    操作环境:SQLServerManagementStudio15.0.18424.0SQLServer管理对象(SMO) 16.100.47021.0+7eef34a564af48c5b0cf0d617a65fd77f06c3eb1MicrosoftAnalysisServices客户端工具 15.0.19750.0Microsoft数据访问组件(MDAC) 10.0.19041.2604MicrosoftMSXML ......
  • 14-Filter&Listener&Ajax&Axios&JSON
    1,Filter1.1Filter概述Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。Servlet我们之前都已经学习过了,Filter和Listener我们今天都会进行学习。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有......
  • Day 41 41.1 Python中json模块的loadloads方法实战及参数详解
    Python中json模块的load/loads方法实战及参数详解【一】loads方法与load方法的异同在Python中json是一个非常常用的模块,这个主要有4个方法:json.dumpsjson.dumpjson.loadsjson.load这里主要分析讲解一下json的loads和load方法。这两个方法中都是把其他类型......
  • Day 41 41.2 Python中json模块之dumps参数详解
    Python的JSON用法之dumps的各种参数用法(详细)JSON是用于存储和交换数据的语法。JSON(JavaScriptObjectNotation)最初是用JavaScript对象表示法编写的文本,但随后成为了一种常见格式,被包括Python在内的众多语言采用。在使用json方法的时候要记住先引进这个库importjson......
  • 跨域JSONP原理及调用具体示例
    上篇博客介绍了同源策略和跨域访问概念,其中提到跨域常用的基本方式:JSONP和CORS。 那这篇博客就介绍JSONP方式。  JSONP原理  在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的,但img、iframe、script等标签是个例外,这......
  • Newtonsoft.Json使用
    目录枚举类型序列化/反序列化结论序列化后的字符串字段顺序控制通过[JsonProperty(Order=1)]控制字段序列化后的顺序通过自定义ContractResolver的方式实现相关参考用于记录开发过程中Newtonsoft.Json中使用的常用功能。枚举类型序列化/反序列化由于枚举类型的基类是值类型,......
  • SpringBoot读取Yml配置文件工具类
    SpringBoot读取Yml配置文件工具类在某些特定的环境,需要在非SpringBean中读取Yml文件,可以使用以下方式读取:需要依赖<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>24.1-jre</v......
  • Java 从 ZipEntry 对象中读取指定文件
    /***从zip文件中,读取指定的压缩内容*@paramzipFilezip压缩文件*@paramfileName需要读取的文件名*@paramoutTxtFile输出文件*/privatestaticvoidreadFileFromZipEntry(FilezipFile,StringfileName,FileoutTxtFile){......