python 字符串str和json格式转换
最近在写一个脚本,需要处理从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格式转换的更多相关文章
- python判断字符串是否是json格式方法分享
python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例: ...
- Python-字符串str和json格式的转换
str转json str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号.如果不一致,推荐用正则进行拆分至和json格式一致1. 通过 ...
- json格式转换(json,csjon)(天气预报)
json格式数据默认为string,可以使用eval()函数或者json模块将其转换为dict.标准Json字符串必须使用双引号(")而不能使用单引号('),否则从字符串转换成dict类型会 ...
- 【最简单的方法】js判断字符串是否为JSON格式(20180115更新)
前言 针对 “js判断字符串是否为JSON格式” 这个问题,在网上查了许多资料,都没找到自己想要的答案. 但是看到这个帖子<js判断字符串是否为JSON格式>后,突然灵光一闪,想到一种很简 ...
- SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法
create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...
- (转)json格式转换成javaBean对象的方法
把json格式转换成javaBean才可以.于是查了一下资料,网上最多的资料就是下面的这种方式: Java code? 1 2 3 4 5 6 7 8 9 String str = "[{\ ...
- json格式转换成Map的应用
jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...
- python 字符串转化为json、post请求
在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将d ...
- 校验字符串是否是JSON格式,将不规则展示的json格式的字符串进行规则展示(json格式化)
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] var str = {"code": "","svcname" ...
随机推荐
- 高级ACL访问控制列表
实验拓扑: 配置: 基本配置做完之后搭建OSPF网络 R1: ospf 1 area 0 network 10.0.13.0 0.0.0.255 network 1.1.1.1 0.0.0.0 R2: ...
- [HDU 1529]Cashier Employment(差分约束系统)
[HDU 1529]Cashier Employment(差分约束系统) 题面 有一个超市,在24小时对员工都有一定需求量,表示为\(r_i\),意思为在i这个时间至少要有i个员工,现在有n个员工来应 ...
- luoguP1312 Mayan游戏 题解(NOIP2011)
luoguP1312 Mayan游戏 题目 #include<bits/stdc++.h> #define ll long long #define rg register #define ...
- [Python] 迭代器是什么?你每天在用的for循环都依赖它!
从循环说起 顺序,分支,循环是编程语言的三大逻辑结构,在Python中都得到了支持,而Python更是为循环结构提供了非常便利的语法:for ... in ... 刚从C语言转入Python的同学可能 ...
- 1481:Maximum sum (前缀和+dp)
[题目描述] 对一个序列A={a1, a2,..., an}给出函数: t1 t2 d(A) = max{ ∑ai + ∑aj | 1 <= s1 <= t1 < s2 <= ...
- What is one-hot?
SEO: libtorch 如何 OneHot ? torch OneHot 源代码 ? https://www.tensorflow.org/api_docs/python/tf/one_hot 最 ...
- 【java】jstack分析查看线程状态
演示代码 public class StackTest { public static void main(String[] args) { Thread thread = new Thread(ne ...
- 分析abex'crackme#1
测试文件下载:https://www.wocloud.com.cn/webclient/share/sindex.action?id=i9K_Br6TgE7Kf_YTF04yHmKcRy5TUdZ8U ...
- JavaScript的进制转换
先介绍两个API: 一.number 类型的 toString 方法 语法 JavaScript: numberObject.toString( [ radix ] ) 参数 参数 描述 radix ...
- CSS3中的弹性盒子模型
介绍 在css2当中,存在标准模式下的盒子模型和IE下的怪异盒子模型.这两种方案表示的是一种盒子模型的渲染模式.而在css3当中,新增加了弹性盒子模型,弹性盒子模型是一种新增加的强大的.灵活的布局方案 ...