一、 什么是json文件

JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,易与人于都和编写,同时也易于机器解析和生成。
如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。

二、json文件的基础格式

JSON 的基础结构有两种:
键值对 (name/value pairs) 和数组 (array)。

JSON 具有以下形式:
object - 对象,用花括号表示,形式为(数据是无序的):
{ pair_1, pair_2, …, pair_n }
pair - 键值对,形式为:
string : value
array - 数组,用中括号表示,形式为(数据是有序的):
[value_1, value_2, …, value_n ]
value值,可以是:
string 字符串
number 数字
object 对象
array 数组
true / false / null 特殊值
string 字符串
例子:

{
    "name": "echo",
    "age": 24,
    "coding skills": ["python", "matlab", "java", "c", "c++", "ruby", "scala"],
    "ages for school": { 
        "primary school": 6,
        "middle school": 9,
        "high school": 15,
        "university": 18
    },
    "hobby": ["sports", "reading"],
    "married": false   
     }

JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:

JSON类型Python类型
{}dict
[]list
“string”str
1234.56int或float
true/falseTrue/False
nullNone

三、json模块的功能

json模块也提供了四个功能:json.dumps json.loads  json.dump json.load 。loads跟dumps是用来处理字符串的,load跟dump是用来处理文件的。

dumps:把其他对象或格式转换为json格式
loads:把json转换成其他格式,
dump:把json数据写入到文件中
load:将文件的内容转换成为json数据

import json
a = {'name':'xiaoming','age':'18','sex':'nan'}
print(type(a))#<class 'dict'>
b = json.dumps(a)
print(type(b))#<class 'str'>
c = json.loads(b)
print(c)#{'name': 'xiaoming', 'age': '18', 'sex': 'nan'}
import json
import os
a = {
    "name": "echo",
    "age": 24,
    "coding skills": ["python", "matlab", "java", "c", "c++", "ruby", "scala"],
    "ages for school": {
        "primary school": 6,
        "middle school": 9,
        "high school": 15,
        "university": 18
    },
    "hobby": ["sports", "reading"],
    "married": 'false'
}
with open('11','w+') as b:#打开名字为11的文件
    json.dump(a,b)#将a的数据以json形式写入文件

with open('11') as b:
    c = json.load(b)
    print(type(c))#<class 'dict'>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐