【json】文件&数据处理
使用python处理json文件数据。
json库
import json
函数 | 描述 |
---|---|
json.dumps | 将 Python 对象编码成 JSON 字符串 |
json.loads | 将已编码的 JSON 字符串解码为 Python 对象 |
1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
(2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)
2、json.dump()和json.load()主要用来读写json文件函数
dump: 是将dict类型转换为json格式字符串,存入文件 |
dumps: 是将dict转换为string |
load: 是将里json格式字符串转化为dict,读取文件 |
loads: 是将string转换为dict |
参考[2],和[3]。
json数据
json有两种数据结构:对象和数组。
对象:用大括号表示,由键值对组成,每个键值对用逗号隔开。其中key必须为字符串且是双引号,value可以是多种数据类型。
数组:用中括号表示,每个元素之间用逗号隔开。
json中的字符串都要用双括号表示。
json数据可以嵌套表示出结构更加复杂的数据。
将python数据与json数据相互转化:
python数据转成json字符串:json_data = json.dumps(python_data)
json字符串转成python对象:python_data = json.loads(json_data)
参考CSDN博客。
文件处理
文件名为'filename.json'
1.把一个python类型数据直接写入json文件
json.dump(pydata, open(‘filename.json’, “w”))
2.直接从json文件中读取数据返回一个python对象
pydata = json.load(open(‘filename.json’))
报错处理
【json写入问题:TypeError: Object of type float32 is not JSON serializable】 参考:https://www.jianshu.com/p/3339250dda8f
Json的标准格式是不支持单引号型字符串的,否则会出现以下错误:
- json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column2(char1)
参考
[1] https://blog.csdn.net/ko_tin/article/details/72472793
[2] https://www.cnblogs.com/bigtreei/p/10466518.html
[3] https://www.cnblogs.com/hjianhui/p/10387057.html