python json.loads兼容单引号数据的方法

yipeiwu_com6年前Python基础

Python的json模块解析单引号数据会报错,示例如下

>>> import json
>>> data = "{'field1': 0, 'field2': 'hehehehe', 'field3': 'hahaha'}"
>>> json.loads(data)
Traceback (most recent call last): 
File “”, line 1, in 
File “/usr/lib/python3.5/json/init.py”, line 319, in loads 
return _default_decoder.decode(s) 
File “/usr/lib/python3.5/json/decoder.py”, line 339, in decode 
obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
File “/usr/lib/python3.5/json/decoder.py”, line 355, in raw_decode 
obj, end = self.scan_once(s, idx) 
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

摸索的解决办法如下

>>> data = json.dumps(eval(data))
>>> print(data)
{“field3”: “hahaha”, “field2”: “hehehehe”, “field1”: 0}

处理后正确解析

>>> print(json.loads(data))
{‘field3': ‘hahaha', ‘field2': ‘hehehehe', ‘field1': 0}

以上这篇python json.loads兼容单引号数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python两个内置函数 locals 和globals(学习笔记)

Python两个内置函数——locals 和globals 这两个函数主要提供,基于字典的访问局部和全局变量的方式。 在理解这两个函数时,首先来理解一下python中的名字空间概念。Py...

python如何重载模块实例解析

本文首先介绍了Python中的模块的概念,谈到了一个模块往往由多个模块组成,然后通过具体实例,分析了模块重载的相关内容,具体介绍如下。 模块是Python程序架构的一个核心概念,较大的程...

对django views中 request, response的常用操作详解

request 获取post请求中的json数据 def hello(request): data = json.loads(request.body) ... json格式还...

Python的SQLAlchemy框架使用入门

数据库表是一个二维表,包含多行多列。把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含id和nam...

记一次python 内存泄漏问题及解决过程

记一次python 内存泄漏问题及解决过程

最近工作中慢慢开始用python协程相关的东西,所以用到了一些相关模块,如aiohttp, aiomysql, aioredis等,用的过程中也碰到的很多问题,这里整理了一次内存泄漏的问...