json的定义
JSON (JavaScript Object Notation) ,是一种轻量级的数据交换格式。它的使用范围很广,并成为 ECMA 标准,可以被使用在多种编程语言中,用于前后端之间的数据传输、存储和交换数据。可以说是“用更少的编码,有更快的处理速度”,所以深受广大程序员的喜爱。
JSON 格式的数据是由键值对组成的,其中键值对之间使用逗号分隔。在 JSON 中,键和值都必须使用双引号引起来。
一段完整的json:
{"name": "Simon","age": 2,"isMale": true,"hobbies": ["reading", "learning", "traveling"],"address": {"city": "Guangzhou","postCode": "510000"},"email": null
}
json与python中字典互相转化的语法
python与json数据类型的对应关系:
1. python字典→json
语法如下:
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
import json #python字典转化为json并保存为json文件格式
data_python={'name': '彼得潘', 'age': None, 'is_employee': True, 'addresses': [{'type': 'home', 'city': 'New York', 'country': 'USA'}, {'type': 'work', 'city': 'San Francisco', 'country': 'USA'}]}
data_json=json.dump(data_python,open('json_data.json','w'),ensure_ascii=False,indent=4) #中文默认是转化为ascii,所以需指定false
print(data_json,type(data_json),sep='\n')#python字典转化为json
data_python={'name': '彼得潘', 'age': None, 'is_employee': True, 'addresses': [{'type': 'home', 'city': 'New York', 'country': 'USA'}, {'type': 'work', 'city': 'San Francisco', 'country': 'USA'}]}
data_json=json.dumps(data_python,ensure_ascii=False) #中文默认是转化为ascii,所以需指定false
print(data_json,type(data_json),sep='\n')
2. json→python字典
语法如下:
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
import json#json转化为python字典
data_json='''{"name": "彼得潘","age": null,"is_employee": true,"addresses": [{"type": "home","city": "New York","country": "USA"},{"type": "work","city": "San Francisco","country": "USA"}]
}'''
data_python=json.loads(data_json)
print(data_python,type(data_python),sep='\n')#读取json文件并将json转化为python字典
data_python=json.load(open('json_data.json'))
print(data_python,type(data_python),sep='\n')