博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的字典和json转的互转
阅读量:4615 次
发布时间:2019-06-09

本文共 1824 字,大约阅读时间需要 6 分钟。

res = ''' {"key1":"123","key2":"abc"} '''  #定义json格式的字符串,json的格式必须是"" 双引号,这点和python不同,不能用单引号或者三引号进行标注字符串的格式。 print(type(res)) >>> 
res2 = {"key1":"123","key2":"abc"} print(type(res2)) >>>
区别:在python中遇到{}格式的,默认当做了dict处理,要想{}表达为json格式的,在定义的时候,需要添加''' ''' 三引号,告诉python解释器三引号里面的内容为json格式的字符串,而非字典。

当然,在python中也会对dict和json串之间经常会进行转换方便使用。json串是适用于任何语言的文件传输格式,所以,在Python中,我们可以借用json的标准库进行转换。

json 转换成 dict

import json  #导入标准库json res = ''' {"key1":"123","key2":"abc"} '''res_dict = json.loads(res) #使用loads()将json字符串的res转换成方便python处理的dict   res_dictprint(type(res_dict)) >>> 

dict 转换成 json

res2 = {"关键字一号":"123","key2":"abc"}res2_json = json.dumps(res2,indent=4)print(res2_json)print(type(res2_json)) #
>>>{"\u5173\u952e\u5b57\u4e00\u53f7": "123","key2": "abc"} 从上面的结果可以看出,当key值是中文的时候,打印出来的内容时中文的unicode字符编码,那么如何让中文展示成我们希望看到的中文呢? 只需要在dumps(ensure_ascii=False),将中文正常展示 将如上代码修改为
res2 = {"关键字一号":"123","key2":"abc"} res2_json = json.dumps(res2,indent=4,ensure_ascii=False) #indent 左边空格4个字符,格式化json内容 print(res2_json) print(type(res2_json)) #
>>>{"关键字一号": "123","key2": "abc"} 

  如上我们看到,当将字典转换成json的格式转换的时候,可以直接用json.dumps()方法;当将字json转换成字典的格式的时候,直接json.loads()

如果字符串内容很大,大到1T的时候,如果还用上面的方法,难免性能不加。在json库里面,对文件的转换也提供了方法:

将文件内容转换成dict 

import jsonf =open('testmiya.txt',encoding='utf-8')res_dict = json.load(f)print(res_dict) >>>{'海龙': '111', 'xiaojun': '123456', 'tanailing': '11111', 'xiaohei': '7891'} 不需要讲文件的内容读取出来,直接将打开的文件对象f进行转换就可以。

  

将字典内容直接写入文件。

import jsonres2 = {"关键字一号":"123","key2":"abc"}f=open('testjson.txt',mode='w',encoding='utf-8') #只写模式打开文件json.dump(res2,f,indent=4,ensure_ascii=False)#将字典直接通过dump转换成字典后写入文件对象f,不需要转换成字典赋值给对象,然后再调用f.write()写入文件。从而更加高效的实现了文件的写入f.close() >>>{"关键字一号": "123","key2": "abc"}

  

 

转载于:https://www.cnblogs.com/miyatest/p/9603897.html

你可能感兴趣的文章
各种浏览器的user-agent和
查看>>
Restful levels
查看>>
Phonegap移动开发:布局总结(一) 全局
查看>>
Java 变参函数的实现
查看>>
Spring重温(四)--Spring自动组件扫描
查看>>
Android设计图(标注、切图)
查看>>
strstr and strpos
查看>>
hash算法与拉链法解决冲突
查看>>
如何使用jQuery判断一个元素是否存在
查看>>
HTML5中的Canvas(颜色)【转载】
查看>>
420. Strong Password Checker
查看>>
用字节流添加内容至txt中
查看>>
手写算式的识别与运算
查看>>
jquery 1.9 1.8 判断 浏览器(IE11,IE8,IE7,IE6)版本
查看>>
Reporting Services 的一些问题
查看>>
利用Redisson实现分布式锁及其底层原理解析
查看>>
达芬奇的十大经典名画解读
查看>>
case when then else end
查看>>
常用正则
查看>>
小程序丨嵌套循环
查看>>