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

摘要:
要将str转换为jsonstr转换为json格式,必须确保str格式与json一致,即左侧最外括号是花括号,右侧最外括号为花括号。

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))
1
2
3
4
5
但是值得注意的是,json中内部数据需要用双引号来包围,不能使用单引号,如刚才的写法,如果写成这样,就会发生错误:

str = “{‘key’: ‘wwww’, ‘word’: ‘qqqq’}“
j = json.loads(str)
1
2
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
同样,值得注意的是,eval()可以通过运行系统的命令,如:

eval("__import__('os').startfile('notepad.exe')") #启动记事本程序
1
那么为了保证安全,当需要用户输入时,可以对用户输入进行敏感字符检查和过滤

3. literal_eval

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

import ast

a = "{1: 'a', 2: 'b'}"

b = ast.literal_eval(a)

type(b)
dict
1
2
3
4
5
6
7
8
json转str

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

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

免责声明:文章转载自《Python-字符串str和json格式的转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】kettle 的内存设置及输出日志的时间类型HTTP 响应状态代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python-数据类型

1.数字 (1)int(integer),整形 (2)float,浮点型,可以认为是小数,但不仅仅是 (3)complex,复数,由实数和叙述部分组成 2. str:字符串 3.布尔型:True 和 False;布尔值 True 和 False 不像字符串,两边没有引号,它们总是以大写字母 T 或 F 开头,后面的字母小写。...

db2字符串函数

DB2一个汉字占3个字节,Oracle占两个字节。Oracle:SQL> select lengthb('中') from dual; LENGTHB('中')------------- 2DB2:db2 => values length('中') 1----------- 3 1、Locate函数语法:LOCATE(ARG1,ARG2,<...

2019-2020-2 20175320 《网络对抗技术》Exp3 后门原理与实践

2019-2020-2 20175320 《网络对抗技术》Exp3 后门原理与实践 一、实验要求 了解metasploit、veil、加壳工具的使用方法,并利用以上软件实现后门程序与杀软之间的共存,并利用后门程序获取被攻击方的shell。 二、实验目标 1、正确使用msf编码器 2、msfvenom生成如jar之类的其他文件 3、使用veil进行免杀处理...

python-输入

1. python2版本中 咱们在银行ATM机器前取钱时,肯定需要输入密码,对不? 那么怎样才能让程序知道咱们刚刚输入的是什么呢?? 大家应该知道了,如果要完成ATM机取钱这件事情,需要先从键盘中输入一个数据,然后用一个变量来保存,是不是很好理解啊 1.1 raw_input() 在Python中,获取键盘输入的数据的方法是采用 raw_input...

python直接打印列表

row = [u'课程', u'语文', u'数学', u'英语']print rowprint str(row).decode('unicode-escape')import jsons=json.dumps(row,ensure_ascii=False)print s output: [u'u8bfeu7a0b', u'u8bedu6587', u'u...

Python-负数取余(mod)

负数取余遵循公式:         a与d是整数,d非零,那么余数r满足         a=q*d+r,q为整数,且0<=|r|<|d| 通常可能有两个r满足定义,r1,r2分别称为正余数、负余数,且r1=r2+d. 在计算机语言中,同号整数运算,所有语言都遵循尽量让商小的原则,因此7mod3结果为1没有异议。 在异号的整数运算中,C++和J...