Python处理JSON数据

Python处理JSON数据

  1. 导入JSON库:
import json
  1. JSON函数:
json.loads():解析一个有效的JSON字符串
json.load():解析JSON文件的数据

Python处理JSON数据_第1张图片

json.loads():解析一个有效的JSON字符串
1. 准备json字符串
2. 把JSON字符串转为python数据
import json
# 把JSON字符串转为python数据
json_rs = '''[{
    "a": 1,
    "b": 2,
    "c": 3,
    "d": 4,
    "e": 5
}]'''
rs = json.loads(json_rs)
print(rs)
print(type(rs))
print(type(rs[0]))
# [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
# 
# 
json.load():解析JSON文件的数据
1. 创建指向该文件的文件对象
2. 加载该文件对象,转换为python类型的数据
3. 由于文件对象会涉及到打开、关闭文件;因此使用with
import json
# 把JSON文件转为python数据
with open('test.json') as f:
    cs = json.load(f)
    print(cs)
    print(type(cs))
    print(type(cs[0]))
# [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
# 
# 

Python处理JSON数据_第2张图片Python处理JSON数据_第3张图片

json.dumps():将 Python 对象以JSON 字符串出现。
1. python数据
2. 将python转为JSON
import json

# 1. 把python数据转为JSON字符串
json_rs = '''[{
    "a": "美国",
    "b": 2,
    "c": 3,
    "d": 4,
    "e": 5
}]'''
rs = json.loads(json_rs)
json_str = json.dumps(rs)
# [{"a": "\u7f8e\u56fd", "b": 2, "c": 3, "d": 4, "e": 5}]

#若不使用ascii编码,需要使用参数ensure_ascii
json_str = json.dumps(rs, ensure_ascii=False)
# [{"a": "美国", "b": 2, "c": 3, "d": 4, "e": 5}]
json.dump():将 Python 对象以JSON 字符串存入文件
1. 创建待存入的文件对象
2. 把python以JSON格式存入文件
import json
json_rs = '''[{
    "a": "美国",
    "b": 2,
    "c": 3,
    "d": 4,
    "e": 5
}]'''
rs = json.loads(json_rs)
# 2. 把python以JSON格式存储到文件中
# (1) 创建要写入的文件对象
with open('test1.json', 'w') as fp:
# (2)把python以JSON格式存入文件
    json.dump(rs, fp, ensure_ascii=False)
  1. json——轻量级的数据交换格式,读取json数据,实际上是把json格式变成python中字典、列表等格式化的数据,方便索引查找。

对象——内容是:键值对的集合——键必须是字符串。

{名称:值,名称:值}

数组——其中:值可以为字符串、数值、对象、数组

[值,值]

  1. 注意事项:

(1) 对象的每个属性都要有双引号,否则JSON不能加载;

(2) 键必须是字符串。

  1. 应用场景:

学习的图书馆系统,可以将图书信息保存为json文件在本地。

游戏的个人设置数据和历史数据都可以保存到本地。在游戏加载过程读取。

网页中的图表数据源一般是json格式,可以爬取后转化为我们想要的数据,而不是图表。

  1. python 原始类型向 json 类型的转化对照表:
Python——dict    list, tuple   str, unicode    int, long, float    True    False     None
JSON——object	array         string          number              true    false     null

你可能感兴趣的:(json,python,开发语言)