python读写csv数据
在Python中,读写CSV(Comma Separated Values)数据通常使用内置的csv模块。以下是一个简单的例子,展示了如何使用csv模块来读取和写入CSV文件。 首先,假设我们有一个名为example.csv的文件,内容如下:
name,age,city
Alice,28,New York
Bob,22,Los Angeles
Charlie,30,Chicago
读取CSV文件
import csv # 打开CSV文件并读取内容
with open('example.csv', mode='r', newline='') as file: reader = csv.reader(file) # 遍历CSV文件的每一行 for row in reader: print(row) # 打印每一行的内容,作为列表 # 输出:
# ['name', 'age', 'city']
# ['Alice', '28', 'New York']
# ['Bob', '22', 'Los Angeles']
# ['Charlie', '30', 'Chicago']
写csv文件
import csv # 定义要写入的数据
data = [ ['name', 'age', 'city'], ['Alice', '28', 'New York'], ['Bob', '22', 'Los Angeles'], ['Charlie', '30', 'Chicago']
] # 打开(或创建)一个CSV文件并写入数据
with open('output.csv', mode='w', newline='') as file: writer = csv.writer(file) # 写入CSV文件的每一行 for row in data: writer.writerow(row) # 现在,'output.csv' 文件包含了和上面例子中一样的数据
在上面的例子中,csv.reader用于读取CSV文件,而csv.writer用于将数据写入CSV文件。open函数用于打开文件,并指定模式('r'用于读取,'w'用于写入)。newline=''参数在写入时非常有用,它确保了在不同的操作系统上都能正确地写入行。
csv.reader返回的是一个迭代器,它会产生CSV文件的每一行,每一行都是一个字符串列表。而csv.writer的writerow方法则用于将一个列表作为一行写入CSV文件。
记住,CSV文件只是一个简单的文本文件,其中的数据由逗号分隔。你可以使用任何文本编辑器来查看或编辑它。同时,csv模块也支持其他分隔符,如制表符,你可以通过传递delimiter参数来指定。
Python中读写JSON数据
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于阅读和编写。虽然它最初是为JavaScript设计的,但由于其简单性和普遍性,它已经被许多其他编程语言广泛采用,包括Python。在Python中,json模块使得处理JSON数据变得非常简单。
JSON数据结构
JSON主要支持两种数据结构,对象和数组,在python中对应字典和列表,比如:
对象、字典(dict)一种无序的键值对集合使用大括号,格式如下:
{ "name": "Zhangsan",
"age": 30,
"city": "New York" }
数组、列表:这是一个有序的值列表,使用方括号[]表示:
[ "apple",
"banana",
"cherry" ]
编解码
编码:Python对象到JSON
使用json.dumps()函数,可以将Python对象(如字典或列表)转换为JSON格式的字符串。
解码:JSON到Python对象
使用json.loads()函数,可以将JSON格式的字符串转换为Python对象(如字典或列表)
python处理json举例
import json
json_string = '{"name": "Zhangsan", "age": 30, "city": "Jining"}' # 使用json.loads()函数来解析这个json字符串
json_data = json.loads(json_string)
# 使用json.dumps()函数来将pyhton对象转回json字符串
json_data_string = json.dumps(json_data)# 观察每一步的数据类型,可以发现对json_string先解析再dump,最终得到的字符串跟原字符串相等。
print("json编码的原字符串:", type(json_string), json_string)
print("json解析后:", type(json_data), json_data)
print("json转换回原字符串:", type(json_data_string), json_data_string)
print("json解析再转回原json字符串:", json_string == json_data_string)
json文件读取
json模块还可以直接从文件读取JSON数据或将JSON数据写入文件。
# 写到文件
with open('data.json', 'w') as f:json.dump(json_data, f)# 打开并读取JSON文件
with open('data.json', 'r') as f: readjsondata = json.load(f) # 现在,`readjsondata`变量包含了JSON文件中的数据,可以像操作Python字典一样操作它
print(type(readjsondata), readjsondata)