Python如何处理JSON数据,保姆级教程,小白也能玩转

本文介绍了JSON作为轻量级数据交换格式的特点,并详细展示了Python中如何使用json库进行数据的序列化(Python转JSON)和反序列化(JSON转Python),包括json.dumps()、json.dump()、json.loads()和json.load()函数的使用方法,以及如何格式化输出到JSON文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介:

        json (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)

二、序列化与反序列化函数及实例

        所谓序列化,就是python编码为json类型;反序列化,就是json解码为python类型。下文将会详细展开Python里这两种的具体函数:

1、序列化 - python编码为json类型

(1)json.dumps():把python数据类型转换成json字符串

import json

# 把python数据类型转换成json字符串
dict_data = {'name': 'saxon', 'age': 18}
print('dict_data', end = ':')
print(dict_data)
print('dict_data type',end = ':')
print(type(dict_data))
json_data = json.dumps(dict_data)
print('json_data', end = ':')
print(json_data)
print('json_data type',end = ':')
print(type(json_data))

输出:

(2)json.dump():把python数据类型转换成json字符串并存储在文件中

import json

# 把python数据类型转换成json字符串并存储在文件中
dict_data = {'name': 'saxon', 'age': 18}
with open('data/json_data.json', 'w') as f: # ‘w’表示写入文件,文件不存在则创建,存在则覆盖
    json.dump(dict_data, f)
    print("载入文件完成...")
    f.close()

输出:

2、反序列化 - json解码为python类型

(1)json.loads():解析json数据,返回python中的数据类型

import json

# 解析json数据,返回python中的数据类型
json_data = '{"name": "saxon", "age": 18}'
dict_data = json.loads(json_data)
print('dict_data', end = ':')
print(dict_data)
print('dict_data type',end = ':')
print(type(dict_data))

 输出:

(2)json.load():打开json文件,解析json数据,返回python中的数据类型

import json

# 打开json文件,解析json数据,返回python中的数据类型
with open('data/json_data.json','r') as f:
    dict_data = json.load(f)
    print("解析文件完成...")
    print('dict_data', end = ':')
    print(dict_data)
    print('dict_data type',end = ':')
    print(type(dict_data))
    f.close()

输出:

三、格式化输出Python数据类型到JSON文件

        我们常用json文件来进行大规模的数据存储和处理,故良好的缩进格式会提升阅读效率,格式化输出的代码如下:

import json

# 格式化输出python数据类型到json文件
dict_data = {'name': 'saxon', 'age': 18, 'hobby': ['basketball', 'football']}
with open('data/json_data.json', 'w') as f:
    # f.write(json.dumps(dict_data, indent=4, ensure_ascii=False))
    json.dump(dict_data, f, indent=4, ensure_ascii=False)
    print("格式化输出完成...")
    f.close()

        其中,indent=4设置json文件格式的缩进为4个空格,增加格式美观度;ensure_ascii=False指定不对非ASCII字符进行编码,直接输出中文至文件。

输出: 

四、Python与JSON的数据类型转换对应表

1、python类型编码为json类型转换对应表

Python

JSON

dict

object

list, tuple

array

str

string

int, float, int- & float-derived Enums

number

True

true

False

false

None

null

2、json类型解码为python类型转换对应表

JSON

Python

object

dict

array

list

string

str

number (int)

int

number (real)

float

true

True

false

False

null

None

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棱角码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值