欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

程序员文章站 2024-02-06 23:51:40
...

JSON文件

处理方法

  • JSON Path
  • 转化成Python类型进行操作(json类)

JSON模块

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

转换格式对照

JSON Python
object dict
array list
string unicode
number(int) int,long
number(real) float
true True
false False
null None

loads与dumps

用于JSON字符串(注意:文本操作)

方法 作用
json.loads() 将包含了一个JSON数据的str、bytes、bytearray对象转化成一个Python Dictionary
josn.dumps() 将Python对象转换为json对象

loads

import json

strList = '[1, 2, 3, 4]'
print(type(strList))
json.loads(strList)
print(type(json.loads(strList)))

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

strDict = '{"name": "张三", "age": "18"}'
print(type(strDict))
json.loads(strDict) # json数据自动按Unicode存储
print(type(json.loads(strDict)))

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)
dumps

import json

listStr = [1, 2, 3, 4]
print(type(listStr))
json.dumps(listStr)
print(type(json.dumps(listStr)))

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

tupleStr = (1, 2, 3, 4)
json.dumps(tupleStr)
print(type(json.dumps(tupleStr)))

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

dictStr = {"name": "张三", "age": "18"}
print(type(dictStr))
json.dumps(dictStr)
print(type(json.dumps(dictStr)))

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

注意

  • json.dumps() 序列化时默认使用的ascii编码
  • 添加参数 ensure_ascii=False 禁用ascii编码,按utf-8编码
dictStr = {"name": "张三", "age": "18"}
json.dumps(dictStr, ensure_ascii=False)

提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)

load与dump

包换JSON的类文件对象(注意:文件操作)

方法 作用
json.load 将Python对象转换为json对象并写入文件
json.dump() 读取文件中的json形式字符串并转化为python类型

json.dump(Data, file_object, Param)
①要存储的数据Data ②存储文件

load

import json
# 使用json.load提取类文件对象中的数据

strList = json.load(open("test.json"))
print strList

dump

# json.dump 能够把python类型放入类文件对象中

listStr = [{"name": "张三"}, {"age": "18"}]
json.dump(listStr, open("test.json","w"), ensure_ascii=False)

with open("test.json", "w", encoding="utf-8") as f:
    f.write(json.dumps(listStr,ensure_ascii=False, indent=2))

参数Params

参数 作用
ensure_ascii 默认值True ,False为关闭ASC11码,以文档中方式保存
indent 自动缩进,美化格式
sort_keys 将数据根据keys的值进行排序
encoding 设置json编码格式,默认utf-8
相关标签: Spider