数据存储格式——json

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值