Python 将json序列化后的字符串转换成字典(推荐)

yipeiwu_com7年前Python基础

一般而言下面的就可以完成需求了。

def convertToDic(data):
 jsonDic=json.loads(data)
 return dict(jsonDic)

但实际应用中可能会出现一些问题,因此有时候也可以增加一些异常处理:

def convertToDic(data):
 try: jsonDic=json.loads(data)
 except json.decoder.JSONDecodeError: jsonDic={}
 try: dic=dict(jsonDic)
 except TypeError: dic={}
 return dic

实际应用:

def getEvent(data):
 try: jsonDic=json.loads(data)
 except json.decoder.JSONDecodeError: jsonDic={}
 try: dic=dict(jsonDic)
 except TypeError: dic={}
 try: event = dic["event"]
 except KeyError: event = None
 return event, dic

PS:下面看下python json与字典对象互相转换

import requests
import json
'''
json.loads(json_str) json字符串转换成字典
json.dumps(dict) 字典转换成json字符串 
'''
# 这是一个ajax发起的get请求,获取一个json对象
r = requests.get("https://m.douban.com/rexxar/api/v2/subject_collection/movie_showing/items?os=ios&for_mobile=1&start=0&count=18&loc_id=108288&_=0")
json_response = r.content.decode() # 获取r的文本 就是一个json字符串
# 将json字符串转换成dic字典对象
dict_json = json.loads(json_response)
print(type(dict_json))
# 将字典转换成json字符串
str_json = json.dumps( dict_json )
print(type(str_json))
# 字典转换成json 存入本地文件
with open('./a.txt','w') as f:
  # 设置不转换成ascii json字符串首缩进
  f.write( json.dumps( dict_json,ensure_ascii=False,indent=2 ) )

总结

以上所述是小编给大家介绍的Python 将json序列化后的字符串转换成字典,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

python3.4控制用户输入与输出的方法

一、输入 1.函数格式:input() 2.函数功能:接受一个标准输入数据,返回string类型。ctrl+z结束输入。 3.实例: 默认input():等待一个任意字符的输入 s...

Python通过正则表达式选取callback的方法

本文实例讲述了Python通过正则表达式选取callback的方法。分享给大家供大家参考。具体如下: 最近在瞎想怎么通过xpath去精确抓取文章的正文,跟parselets类似的想法,只...

Python wxPython库消息对话框MessageDialog用法示例

Python wxPython库消息对话框MessageDialog用法示例

本文实例讲述了Python wxPython库消息对话框MessageDialog用法。分享给大家供大家参考,具体如下: 消息对话框即我们平时说的Messagebox,看看它的原型,下面...

python生成密码字典的方法

python生成密码字典的方法

这里我使用的是python27 主要用的是我之前博文里提到的itertools循环迭代的模块,用这个模块可以省不少事 首先要调用itertools import itertools...

Python中使用logging模块代替print(logging简明指南)

替换print?print怎么了? print 可能是所有学习Python语言的人第一个接触的东西。它最主要的功能就是往控制台 打印一段信息,像这样: 复制代码 代码如下: print...