使用Python处理json字符串中的非法双引号问题
作者:Nick_Spider 发布时间:2021-01-19 19:26:13
标签:Python,json,字符串,非法,双引号
Python处理json字符串中的非法双引号
工作中数据清洗时遇到以下情况:
a = '{"地区": "湖南", "描述": "精通软件开发、"数据挖掘"和分布式"}'
由于读取出的json字符串中包含有非法双引号,在使用json.loads()处理的时候报错
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 29 (char 28)
写了大半个小时的正则都无法解决
后来使用如下方法解决了,一并把json字符串中的换行符、分隔符和双引号都转义了
def deal_json_invaild(data):
data = data.replace("\n", "\\n").replace("\r", "\\r").replace("\n\r", "\\n\\r") \
.replace("\r\n", "\\r\\n") \
.replace("\t", "\\t")
data = data.replace('": "', '&&testPassword&&')\
.replace('", "', "$$testPassword$$")\
.replace('{"', "@@testPassword@@")\
.replace('"}', "**testPassword**")
print(data)
data = data.replace('"', r'\"')\
.replace('&&testPassword&&', '": "').replace('$$testPassword$$', '", "').replace('@@testPassword@@', '{"').replace('**testPassword**', '"}')
print(data)
return data
测试如下:
a = deal_json_invaild(a)
json_data = json.loads(a)> {"地区": "湖南", "描述": "精通软件开发、\"数据挖掘\"和分布式"}
此时转使用json.loads()便不会报错了
Python json单、双引号问题
在 python3 里,一个json是一个字典,形如 {"a":15}
json转换成字符串的话
那么,如果你要将它转换成字符串,也许你用的是str({"a":15}),这样转出来的,可能是是s= "{'a':'15'}",也就是说,里面的kv是单引号的。这个字符串,传到其他地方,再用json.loads(s)的时候会出错,json不支持单引号。
所以,假如你想把一个json结构,转成字符串,传递给远处,然后再重新解析成json结构,应该这样:
s = json.dumps({"a":15})
然后,把数据传到远端,然后再解析回来:
d = json.loads(s)
这样就不会出错了。
也支持列表,能一次性传多个结构
s = json.dumps([{"a":15}, {"b":20}])
然后,把数据传到远端,然后再解析回来:
d = json.loads(s)
来源:https://blog.csdn.net/weixin_39198406/article/details/81709397
0
投稿
猜你喜欢
- 将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一。其他还有模板替换法,opcache等方法。静态化的作用:提高网站的响应速
- SQL Server数据库日志清除的两个方法:方法一一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,
- import time# time模块中包含了许多与时间相关的模块,其中通过time()函数可以获取当前的时间。count = 100pri
- 执行表扫描操作之前,将调用info()函数,以便为优化程序提供额外信息。优化程序所需的信息不是通过返回值给定的,你需填充存储引擎类的特定属性
- 本文实例为大家分享了python实现图像拼接的具体代码,供大家参考,具体内容如下1.待拼接的图像2. 基于SIFT特征点和RANSAC方法得
- 微信链接分享给好友时能够自定义标题、简介和logo,现将ThinkPHP5集成JS-SDK实现微信自定义分享功能的过程整理成文。Jssdk类
- 代码如下:Set Catalog_object= Server.CreateObject("ADO
- 验证关键词是否为sql保留字的在线工具:<html> <head><t
- 通过界面设计上是能手工操作的,无法达到我批量修改几千台服务器。 因为此了一个脚本来批量执行。 环境:redgate + mssql 2008
- PHP asXML()函数实例格式化 XML(版本 1.0)中的 SimpleXML 对象的数据:<?php $note=<&l
- 1.简介celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。celery用于生产系统
- 本文列出了HTML4标签的默认样式列表,对网页设计者来说这个应该很有用。原文来自:W3C (http://www.w3.org/TR/CSS
- 随机生成四位数验证码,包括汉字,数字,英文大小写。1.Servlet类package servlet;import java.awt.Bas
- SQL Server 2005的新功能为动态管理对象,它们是在指定时间返回某个数据库实例的特殊状态信息的数据库视图或函数。这些对象允许数据库
- 开门见山,直接使用 skimage 库为图像添加高斯噪声是很简单的:import skimageorigin = skimage.io.im
- 内容摘要:这篇文章的主旨是弄清楚如何根据实际需求实现一个联动菜单以及联动菜单的原理,实例是实现一个日期选择下拉菜单。首先来分析一下日期下拉菜
- 这一段时间,我在进行“09帮助中心升级”项目,负责其中的白板和视觉设计,总算和Axure有了第一次的正式会晤。由于之前已经零散地学习过一些A
- PHP将ppt转成图片查看PHP安装COM组件1、如php版本>5.3.15,需要保证ext文件夹下有php_com_dotnet.d
- Oracle 的正规表达式的实施是以各种 SQL 函数和一个 WHERE 子句操作符的形式出现的。如果您不熟悉正规表达式,那么这篇文章可以让
- HTTP_X_FORWARDED_FOR与REMOTE_ADDR的区别.在Request.ServerVariables中并没有HTTP_X