一、引言
对于算法工程师来说,语言从来都不是关键,关键是快速学习以及解决问题的能力。大学的时候参加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格式的字符串。例如:
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的数据结构,如字典或列表。例如:
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数据,无论是转换数据结构,还是读写文件。