【python】python指南(十二):Json与dict、list互相转换

2024-08-13 16:26:45 浏览数 (1)

一、引言

对于算法工程师来说,语言从来都不是关键,关键是快速学习以及解决问题的能力。大学的时候参加ACM/ICPC一直使用的是C语言,实习的时候做一个算法策略后台用的是php,毕业后做策略算法开发,因为要用spark,所以写了scala,后来用基于storm开发实时策略,用的java。至于python,从日常用hive做数据策略用python写udf,到基于tensorflow深度学习框架写python版的模型网络,再到现在实用pytorch做大模型。眼看着在语言纷争中,python的应用越来越广,开一个单独的专栏用于记录python中常用到的技巧,算是做笔记,没事翻出来看看。

dict、list是python中的字典、列表类型,json是字符串str类型。json的优势是易于理解,接口尝试用json作为请求格式进行传输。json和dict、list形态上非常相似,今天讲一下json与dict、list之间如何转换。

二、JSON转换方法

2.1 将Python对象转换为JSON字符串(序列化)

使用json.dumps()函数可以将Python的字典、列表等数据结构转换为JSON格式的字符串。例如:

代码语言:javascript复制
import json

# Python字典
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# 转换为JSON字符串
json_data = json.dumps(data)
print(json_data)

输出:

代码语言:javascript复制
{"name": "John", "age": 30, "city": "New York"}

2.2 将JSON字符串转换为Python对象(反序列化)

使用json.loads()函数可以将JSON格式的字符串转换回Python的数据结构,如字典或列表。例如:

代码语言:javascript复制
import json

# JSON字符串
json_data = '{"name": "John", "age": 30, "city": "New York"}'

# 转换为Python字典
data = json.loads(json_data)
print(data)

输出:

代码语言:javascript复制
{'name': 'John', 'age': 30, 'city': 'New York'}

2.3 使用json模块处理文件

json模块还提供了json.dump()json.load()函数,用于直接从文件读写JSON数据,而无需先读取为字符串再转换。

写入JSON数据到文件:

代码语言:javascript复制
import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

with open('data.json', 'w') as f:
    json.dump(data, f)

从文件读取JSON数据:

代码语言:javascript复制
import json

with open('data.json', 'r') as f:
    data = json.load(f)
print(data)

三、总结

通过这些函数,你可以轻松地在Python中处理JSON数据,无论是转换数据结构,还是读写文件。

0 人点赞