JSON文件存储
https://www.cnblogs.com/makerchen/p/15509781.html
Python基础-JSON数据解析 - 飞桨AI Studio星河社区
1.1、JSON及其Python使用JSON模块简介
- JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
- Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
json.dumps(): 对数据进行编码。
json.loads(): 对数据进行解码。
python 的原始类型与json类型转换表如下:
1.2实例1(Python 数据结构转换为JSON)
In [2]
import json
data = {'no':1,
'name':'huangcong',
'url':'http://www.baidu.com'}
print(data)
print(type(data))
print("=================")
json_data = json.dumps(data)
print(json_data)
print(type(json_data))
{'no': 1, 'name': 'huangcong', 'url': 'http://www.baidu.com'} <class 'dict'> ================= {"no": 1, "name": "huangcong", "url": "http://www.baidu.com"} <class 'str'>
1.3实例2(JSON编码的字符串转换回一个Python数据结构)
In [4]
data02 = json.loads(json_data)
print(data02)
print(type(data02))
{'no': 1, 'name': 'huangcong', 'url': 'http://www.baidu.com'} <class 'dict'>
1.4实例3(文件中读取和修改JSON串)
In [8]
with open('data.txt',"r") as f:
json_data02 = f.read()
print(json_data02)
print(type(json_data02)) # 读取数据的数据类型为str
json_data02 = json.dumps(json_data02)
print(json_data02)
print(type(json_data02))
{ "employees": [ { "firstName": "Bill", "lastName": "Gates" }, { "firstName": "George", "lastName": "Bush" }, { "firstName": "Thomas", "lastName": "Carter" } ] } <class 'str'> "{\n \"employees\": [\n {\n \"firstName\": \"Bill\",\n \"lastName\": \"Gates\"\n },\n {\n \"firstName\": \"George\",\n \"lastName\": \"Bush\"\n },\n {\n \"firstName\": \"Thomas\",\n \"lastName\": \"Carter\"\n }\n ]\n}" <class 'str'>
In [ ]
with open('data.json','w') as f:
f.write(json_data)
f.close
2.1 适用方式
JSON,全称为JavaScript Object Notation,也就是JavaScript对象标记,构造简洁但是结构化程度非常高,采用对象和数组的组合来表示数据,是一种轻量级的数据交换格式,和XML有点类似,如果对数据结构有要求的话,可根据需求考虑此种方式
2.2 基本写法
Python提供了json库来实现对json文件的读写操作,通过调用json库的loads()方法可以将json文本字符串转换为json对象,而调用dumps()方法可以将json对象转换为文本字符串,如下:
import json
with open('demo.json','w',encoding='utf-8') as f:
f.write(json.dumps(data,indent=2,ensure_ascii=False))
import json
with open('demo.json','r',encoding='utf-8') as f:
data = f.read()
data = json.loads(data)
price = data.get('price')
location = data.get('location')
size = data.get('size')
indent代表缩进字符个数,ensure_ascii=False规定文件输出的编码,这样就可以输出中文
注意:JSON的数据需要用双引号来包围,不能使用单引号,代码如下:
[
{
"name":"makerchen',
"gender":"male",
"hobby":"running"
}
]
2.3 以TXT格式存储JSON数据
如果我们想要把数据存储为TXT格式,又想要把数据变为json这样的结构,可以这样实现:
import json
with open('demo.txt','a',encoding='utf-8') as f:
f.write(json.dumps(data,indent=4,ensure_ascii=False) + '\n')
原文链接:https://blog.csdn.net/qq_44000141/article/details/121195542