在python中,有专门处理json格式的模块:json 和 pickle 模块

目录

  • 概述
  • dumps 用法示例
  • 格式化保存
  • loads 和 load
  • python 对象(obj)与json对象的对应关系

概述

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。

在python中,有专门处理json格式的模块:json 和 pickle 模块

  • Json 模块提供了四个方法: dumps、dump、loads、load
  • pickle 模块也提供了四个功能:dumps、dump、loads、load

区别:

  • pickle 只可以在python之间进行交互
  • json 可以实现python与不同开发语言的交互
  • pickle 可以序列化python中的任何数据类型
  • json 只能序列化python中的常规数据类型(列表等)
  • pickle 序列化后的对象不可读
  • json 序列化后的对象是可读的

dumps 用法示例

>>> import json
>>> json.dumps([])    # dumps可以格式化所有的基本数据类型为字符串
'[]'
>>> json.dumps(1)    # 数字
'1'
>>> json.dumps('1')   # 字符串
'"1"'
>>> dict = {"name":"Tom", "age":23}  
>>> json.dumps(dict)     # 字典
'{"name": "Tom", "age": 23}'

格式化保存

a = {"name":"Tom", "age":23}
with open("test.json", "w", encoding='utf-8') as f:
    # indent 超级好用,格式化保存字典,默认为None,小于0为零个空格
    f.write(json.dumps(a, indent=4))
    # json.dump(a,f,indent=4)   # 和上面的效果一样

python for json数组赋值 python读json的数组_python for json数组赋值

loads 和 load

import json
with open("test.json", "r", encoding='utf-8') as f:
    aa = json.loads(f.read())
    f.seek(0)
    bb = json.load(f)    # 与 json.loads(f.read())
print(aa)
print(bb)

# 输出:
{'name': 'Tom', 'age': 23}
{'name': 'Tom', 'age': 23}

python 对象(obj)与json对象的对应关系

Python

JSON

dict

object

list, tuple

array

str

string

int, float

number

True

true

False

false

None

null