Python 处理 JSON文件
Posted 六尺巷人_CDS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 处理 JSON文件相关的知识,希望对你有一定的参考价值。
JSON(JavaScript Object Notation,JavaScript对象表示法,读作/?d?e?s?n/)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。
JSON 数据格式与语言无关。即便它源自JavaScript,但当前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json
,文件扩展名是 .json
。
JSON 语法规则
1
|
{ "name" : "John Doe" , "age" : 18, "address" : { "country" : "china" , "zip-code" : "10000" }} |
1
|
[3, 1, 4, 1, 5, 9, 2, 6] |
1
|
{ "a" : 1, "b" : [1, 2, 3]} |
1
|
[1, 2, "3" , { "a" : 4}] |
1
|
3.14 |
1
|
"plain_text" |
JSON 与 JS 对象的关系
1
|
var obj = {a: ‘Hello‘ , b: ‘World‘ }; //这是一个对象,注意键名也是可以使用引号包裹的 |
1
|
var json = ‘{"a": "Hello", "b": "World"}‘ ; //这是一个 JSON 字符串,本质是一个字符串 |
JSON 和 JS 对象互转
1
|
var obj = JSON.parse( ‘{"a": "Hello", "b": "World"}‘ ); //结果是 {a: ‘Hello‘, b: ‘World‘} |
1
|
var json = JSON.stringify({a: ‘Hello‘ , b: ‘World‘ }); //结果是 ‘{"a": "Hello", "b": "World"}‘ |
常用类型
Python使用json函数
使用之前,首先需要导入json模块,import json
1)、json.dumps()函数
该函数是将 Python 对象编码成 JSON 字符串,例如:
1 import json 2 d={‘谦谦‘:{‘sex‘:‘男‘,‘addr‘:‘北京‘,‘age‘:34},‘千千‘:{ ‘sex‘:‘女‘,‘addr‘:‘北京‘, ‘age‘:34}} 3 print(json.dumps(d,ensure_ascii=False,indent=4)) #字典转成json,字典转换成字符串 加上ensure_ascii=False以后,可以识别中文, indent=4是间隔4个空格显示 4 5 #以上代码转换的结果是: 6 { 7 "谦谦": { 8 "sex": "男", 9 "addr": "北京", 10 "age": 34 11 }, 12 "千千": { 13 "sex": "女", 14 "addr": "北京", 15 "age": 34 16 } 17 }
2)、json.dump()函数
该函数是可以将 Python 对象编码成 JSON 字符串,并自己帮你写入到文件中,不需要再单独写文件,例如:
1 import json 2 d={‘谦谦‘:{‘sex‘:‘男‘,‘addr‘:‘北京‘,‘age‘:34},‘千千‘:{ ‘sex‘:‘女‘,‘addr‘:‘北京‘, ‘age‘:34},} 3 fw =open(‘user_info.json‘,‘w‘,encoding=‘utf-8‘) #打开一个名字为‘user_info.json’的空文件 4 json.dump(d,fw,ensure_ascii=False,indent=4)#字典转成json,字典转换成字符串,不需要写文件,自己帮你将转成的json字符串写入到‘user_info.json’的文件中
3)、json.loads()函数
文件product.json的原文件内容如下:
{ "iphone":{ "color":"red", "num":1, "price":98.5 }, "wather":{ "num":100, "price":1, "color":"white" } }
使用json.loads()函数把json串变成python的数据类型:如下:
1 import json 2 f =open(‘product.json‘,encoding=‘utf-8‘) #打开‘product.json’的json文件 3 res=f.read() #读文件 4 print(json.loads(res))#把json串变成python的数据类型:字典 5 6 #以上转换的结果是: 7 {‘iphone‘: {‘color‘: ‘red‘, ‘num‘: 1, ‘price‘: 98.5}, ‘wather‘: {‘num‘: 100, ‘price‘: 1, ‘color‘: ‘white‘}}
4)、json.load()函数
该函数把json串变成python的数据类型:字典,传一个文件对象,它会帮你读文件,不需要再单独读文件,例如:
import json f =open(‘product.json‘,encoding=‘utf-8‘) #打开文件 print(json.load(f))#把json串变成python的数据类型:字典,传一个文件对象,它会帮你读文件,不需要再单独读文件 #以上转换执行的结果是: {‘iphone‘: {‘color‘: ‘red‘, ‘num‘: 1, ‘price‘: 98.5}, ‘wather‘: {‘num‘: 100, ‘price‘: 1, ‘color‘: ‘white‘}}
以上是关于Python 处理 JSON文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段
你如何在 python 中处理 graphql 查询和片段?