【Python11】JSON模块

1. JSON简介


  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。
  • 使用 JSON 函数需要导入 json 库:import json

官方文档:https://docs.python.org/2/library/json.html


2. JSON函数


2.1 json.dumps


json.dumps:将 Python 对象编码成 JSON 字符串

语法格式:
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=“utf-8”, default=None, sort_keys=False, **kw)


ensure_ascii=False:中文可以成功存储
indent=4: 缩进为4个空格
separators=(',',':'):自定义分隔符,元素之间分隔符为逗号,字典的key与value分隔符为冒号
sort_keys=True:字典排序

实例1

import json
data = [ {
    
     'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps(data)
print(data2)
执行结果为:
[{
    
    "a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

实例2:使用参数让 JSON 数据格式化输出

import json
data = [ {
    
     'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps({
    
    'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)
执行结果为:
{
    
    
    "a": "Runoob",
    "b": 7
}

实例3

import  json
users = {
    
    'name':'westos', "age":18, 'city':'西安'}
json_str = json.dumps(users)
with open('doc/hello.json', 'w') as f:
    # ensure_ascii=False:中文可以成功存储
    # indent=4: 缩进为4个空格
    json.dump(users, f, ensure_ascii=False, indent=4)
    print("存储成功")
print(json_str, type(json_str))
执行结果为:
存储成功
{
    
    "name": "westos", "age": 18, "city": "\u897f\u5b89"} <class 'str'>
存储在文档:
{
    
    
    "name": "westos",
    "age": 18,
    "city": "西安"
}

2.2 json.loads


json.loads:将已编码的 JSON 字符串解码为 Python 对象

语法格式:
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])


实例1

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
text = json.loads(jsonData)
print(text)
执行结果为:
{
    
    u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

实例2

import json
with open('doc/hello.json') as f:
    python_obj = json.load(f)
    print(python_obj, type(python_obj))
执行结果为:
{
    
    'name': 'westos', 'age': 18, 'city': '西安'} <class 'dict'>

附加:
第三方库:Demjson
Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能

猜你喜欢

转载自blog.csdn.net/weixin_46069582/article/details/113731409