ITPub博客

首页 > 数据库 > 数据库开发技术 > json格式数据在Python中处理详解

json格式数据在Python中处理详解

原创 数据库开发技术 作者:derekwh 时间:2023-11-16 12:19:25 0 删除 编辑

概述

Python的json模块是Python标准库的一部分,用于处理json格式的数据。json(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器和客户端之间的数据交换。json模块提供了一个简单易用的接口,使得程序员可以轻松地编码和解码json数据。

安装和导入

json模块是Python标准库的一部分,无需额外安装。您可以使用import json语句导入json模块。

import json

基本使用

json模块提供了两个主要函数:json.dumps()和json.loads()。

json.dumps()用于将Python对象编码(转换)为json字符串,而json.loads()用于将JSON字符串解码(转换)为Python对象。

 json.dumps()函数将Python对象编码为json字符串。下面是一个例子:

import json  
  
# Python对象  
person = {  
    "name": "Alice",  
    "age": 30,  
    "city": "New York"  
}  
  
# 使用json.dumps()编码为JSON字符串  
json_str = json.dumps(person)  
print(json_str)

输出结果:

{"name": "Alice", "age": 30, "city": "New York"}

json.loads()函数将json字符串解码为Python对象。

import json  
  
# JSON字符串  
json_str = '{"name": "Alice", "age": 30, "city": "New York"}'  
  
# 使用json.loads()解码为Python对象  
person = json.loads(json_str)  
print(person)

输出结果:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

更多使用

除了基本的编码和解码功能,json模块还提供了其他一些功能,如处理文件、处理异常等。下面介绍一些进阶使用方法。

处理文件

json模块提供了json.dump()和json.load()函数,用于处理文件操作。

json.loads()将json格式的字符串转换成Python对象。而json.load()则从文件中读取json格式的数据,并将其转换为Python对象。

import json   
person = {  
    "name": "Alice",  
    "age": 30,  
    "city": "New York"  
}  
  
# 打开文件并使用json.dump()将Python对象写入文件  
with open('person.json', 'w') as f:  
    json.dump(person, f)  
    print("写入成功")  
      
# 打开文件并使用json.load()从文件读取JSON数据并解码为Python对象  
with open('person.json', 'r') as f:  
    data = json.load(f)  
    print(data)

选项指定

json.dumps()还有一个可选参数ensure_ascii=True,用于确保输出的字符串只包含ASCII码字符,其他字符将被转换为\uXXXX形式的unicode字符串。

import json  
person = {  
    "name": "张三",  
    "age": 30,  
    "city": "北京"  
}  
  
# 使用json.dumps()编码为JSON字符串,并确保只包含ASCII码字符  
json_str = json.dumps(person, ensure_ascii=True)  
print(json_str)

输出结果:

{"name": "张三", "age": 30, "city": "北京"}

编码指定

json.dumps()还有一个可选参数encoding='utf-8',用于指定输出的编码方式。

import json  
person = {  
    "name": "张三",  
    "age": 30,  
    "city": "北京"  
}  
  
# 使用json.dumps()编码为JSON字符串,并指定编码方式为GBK  
json_str = json.dumps(person, ensure_ascii=True, encoding='gbk')  
print(json_str)

输出结果:

{"name": "\xe7\x8e\x9b\xe4\xb8\x80", "age": 30, "city": "\xe5\x85\xb3\xe4\xb8\xad"}

完整模式和简洁模式

json.dumps()还有一个可选参数indent=None,用于指定缩进量,以使输出的json字符串具有更好的可读性。

当indent=None时,输出为简洁模式的json字符串;当indent>0时,输出为完整模式的json字符串。

person = {  
    "name": "Alice",  
    "age": 30,  
    "city": "New York"  
}  
  
# 使用json.dumps()编码为JSON字符串,并指定缩进量为4个空格  
json_str = json.dumps(person, indent=4)  
print(json_str)  

输出结果:

{  
    "name": "Alice",  
    "age": 30,  
    "city": "New York"  
}


Python的json模块是一个非常方便的库,用于处理json格式的数据。

本文介绍了json模块的基本使用,json模块提供了简单而强大的工具来帮助我们更方便地处理和交换数据。

原文作者:Python学习杂记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
央企算法工程师,微信公众号: python数智工坊

注册时间:2021-03-14

  • 博文量
    305
  • 访问量
    162379