最近在写一个脚本,需要处理从excel中读取的数据,发现读取的json格式数据进行转换时报错

ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
网上查了是因为json的key没有双引号,导致json解析错误的。
为了处理读取的数据从str转换为json查了一下str和json格式转换:

1.)str转json
str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号。如果不一致,推荐用正则进行拆分至和json格式一致
    1. 通过json.loads进行转换

 import json
str = '{"key": "wwww", "word": "qqqq"}'
j = json.loads(str)
print(j)
print(type(j))

但是值得注意的是,json中内部数据需要用双引号来包围,不能使用单引号,如刚才的写法,如果写成这样,就会发生错误:

str = “{‘key’: ‘wwww’, ‘word’: ‘qqqq’}“
j = json.loads(str)

2. 通过eval
eval函数的官方解释为:将字符串str当成有效的表达式来求值并返回计算结果。
即通过eval可以把list,tuple,dict和string相互转化,例如:
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
b = eval(a)
type(b)
list
a = "{1: 'a', 2: 'b'}"
b = eval(a)
type(b)
dict
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
b = eval(a)
type(b)
tuple

同样,值得注意的是,eval()可以通过运行系统的命令,如:
eval("__import__('os').startfile('notepad.exe')") #启动记事本程序
那么为了保证安全,当需要用户输入时,可以对用户输入进行敏感字符检查和过滤

3. literal_eval
和eval用法相同,都可以将字符串str解析成list,tuple,dict,而且避免了eval的安全性的问题

import ast
a = "{1: 'a', 2: 'b'}"
b = ast.literal_eval(a)
type(b)
dict

json转str

使用json.dumps的方法,可以将json对象转化为字符串

data = {'name':'wjp','age':'22'}
data = json.dumps(data)

原文:https://blog.csdn.net/qq_29027865/article/details/83819049

python 字符串str和json格式转换的更多相关文章

  1. python判断字符串是否是json格式方法分享

    python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例:   ...

  2. Python-字符串str和json格式的转换

    str转json str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号.如果不一致,推荐用正则进行拆分至和json格式一致1. 通过 ...

  3. json格式转换(json,csjon)(天气预报)

    json格式数据默认为string,可以使用eval()函数或者json模块将其转换为dict.标准Json字符串必须使用双引号(")而不能使用单引号('),否则从字符串转换成dict类型会 ...

  4. 【最简单的方法】js判断字符串是否为JSON格式(20180115更新)

    前言 针对 “js判断字符串是否为JSON格式” 这个问题,在网上查了许多资料,都没找到自己想要的答案. 但是看到这个帖子<js判断字符串是否为JSON格式>后,突然灵光一闪,想到一种很简 ...

  5. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  6. (转)json格式转换成javaBean对象的方法

    把json格式转换成javaBean才可以.于是查了一下资料,网上最多的资料就是下面的这种方式: Java code? 1 2 3 4 5 6 7 8 9 String str = "[{\ ...

  7. json格式转换成Map的应用

    jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...

  8. python 字符串转化为json、post请求

    在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将d ...

  9. 校验字符串是否是JSON格式,将不规则展示的json格式的字符串进行规则展示(json格式化)

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   var str = {"code": "","svcname" ...

随机推荐

  1. Django CORS跨域资源共享

    1,什么是CORS ​ 允许浏览器向跨源(协议 + 域名 + 端口)服务器发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制 2,特点 ​ 1,浏览器自动完成(在请求头中加入特 ...

  2. JAVA模拟Spring实现IoC过程(附源码)

    前言:本人大四学生,第一次写博客,如果有写得不好的地方,请大家多多指正 一.IoC(Inversion of Control)反转控制 传统开发都是需要对象就new,但这样做有几个问题: 效率低下,创 ...

  3. k8s 组件介绍-kube-schedule

    kubernetes scheduler 基本原理 kubernetes scheduler 作为一个单独的进程部署在 master 节点上,它会 watch kube-apiserver 进程去发现 ...

  4. mysql 删除重复数据只保留一条记录

    删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id fr ...

  5. 20191114PHP验证码

    <?phpob_clean();$img=imagecreate(40,20);$back=imagecolorallocate($img,200,200,200); $blue=imageco ...

  6. git 常用命令与上传步骤

      git 上传步骤: git  init  初始化Git仓库 git  add .  提交你修改的文件 git status  查看项目当中的状态(红色代表的是 未add  的文件    绿色的是已 ...

  7. idea 2019.1.3最新注册码

    CATF44LT7C-eyJsaWNlbnNlSWQiOiJDQVRGNDRMVDdDIiwibGljZW5zZWVOYW1lIjoiVmxhZGlzbGF2IEtvdmFsZW5rbyIsImFzc ...

  8. Win10电脑查看已连接过WiFi密码的命令

    运行中输入CMD,回车,打开命令行窗口. 输入:netsh wlan show profiles    执行后,会列出搜友已连接过的WiFi名字: 输入:netsh wlan show profile ...

  9. django允许外部访问 项目后台不挂断运行

    1关闭防火墙 1 service iptables stop 2设置django 1 2 3 4 5 6 7 8 9 10 11 开开启django时,使用0.0.0.0:xxxx,作为ip和端口例如 ...

  10. 6层PCB设计技巧和步骤

    6层PCB设计技巧和步骤 一.原理图的编辑  6层板由于PCB板中可以有两层地,所以可以将模拟地和数字地分开.对于统一地还是分开地,涉及到电磁干扰中信号的最小回流路径问题,绘制完原理图,别忘检查错误和 ...