python将字符串转变成dict格式的实现

yipeiwu_com6年前Python基础

字符串的内容是字典,需将字符串转变成字典格式

s1 = '{"lid":2,"date":"20190211","type":"1,2","page":1}' # dict的key和value用双引号
s2 = "{'lid':2,'date':'20190211','type':'1,2','page':1}" # 单引号

print(type(s1),type(s2)) # <class 'str'> <class 'str'>

第一种方式 json.loads() 必须用双引号,否则会报错

import json
s11 = json.loads(s1)
print(s11,type(s11)) # <class 'dict'>

s22 = json.loads(s2) #报错jExpecting property name enclosed in double quotes 必须双引号
print(s22,type(s22))

第二种方式 eval() -- 不安全。 用ast.literal_eval()替换

s33 = eval(s1)
print(s33,type(s33))

s44 = eval(s2)
print(s44,type(s44))

import ast
s55 = ast.literal_eval(s1)
s66 = ast.literal_eval(s2)
print(s55,s66,type(s55),type(s66))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Linux下为不同版本python安装第三方库

问题背景 目前的linux发行版上,有很多安装了两个版本的python。 我的机器上默认的版本为python 2.x。且在使用easy_install安装第三方库时,也默认安装到了2...

Python中list循环遍历删除数据的正确方法

Python中list循环遍历删除数据的正确方法

前言 初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(nu...

Python批量创建迅雷任务及创建多个文件

其实不是真的创建了批量任务,而是用python创建一个文本文件,每行一个要下载的链接,然后打开迅雷,复制文本文件的内容,迅雷监测到剪切板变化,弹出下载全部链接的对话框~~ 实际情况是这样...

对python字典元素的添加与修改方法详解

1、字典中的键存在时,可以通过字典名+下标的方式访问字典中改键对应的值,若键不存在则会抛出异常。如果想直接向字典中添加元素可以直接用字典名+下标+值的方式添加字典元素,只写键想后期对键赋...

python实现简易内存监控

本例主要功能:每隔3秒获取系统内存,当内存超过设定的警报值时,获取所有进程占用内存并发出警报声。内存值和所有进程占用内存记入log,log文件按天命名。 1 获取cpu、内存、进程信息...