数据存储
json
------命名不要json.py,坑-----
JSON支持数据格式:
对象(字典)。使用花括号。
数组(列表)。使用方括号。
整形、浮点型、布尔类型还有null类型。
字符串类型(字符串必须要用双引号,不能用单引号)。
多个数据之间使用逗号分开。
注意:json本质上就是一个字符串。
#字典和列表转JSON:
>>> import json
>>> data = {
... 'name' : 'ACME',
... 'shares' : 100,
... 'price' : 542.23
... }
>>> json_str = json.dumps(data)
>>> json_str
'{"name": "ACME", "shares": 100, "price": 542.23}'
>>> data1 = json.loads(json_str)
>>> data1
{'name': 'ACME', 'shares': 100, 'price': 542.23}
处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。
# Writing JSON data
'''
data = [
{
'title': '钢铁是怎样练成的',
'price': 9.8
},
{
'title': '红楼梦',
'price': 9.9
}
]
'''
with open('data.json', 'w',encoding='utf-8') as f:
json.dump(data, f)
# Reading data back
with open('data.json', 'r') as f:
data = json.load(f)
csv文件处理
写入数据到csv文件
写入数据到csv文件,需要创建一个writer对象,主要用到两个方法。一个是writerow,这个是写入一行。一个是writerows,这个是写入多行。
import csv
headers = ['name','age','classroom']
values = [
('zhiliao',18,'111'),
('wena',20,'222'),
('bbc',21,'111')
]
with open('test.csv','w',newline='') as fp:
writer = csv.writer(fp)
writer.writerow(headers)
writer.writerows(values)
写入字典
import csv
headers = ['name','age','classroom']
values = [
{"name":'wenn',"age":20,"classroom":'222'},
{"name":'abc',"age":30,"classroom":'333'}
]
with open('test.csv','w',newline='') as fp:
writer = csv.DictWriter(fp,headers)
writer = csv.writeheader()
writer.writerow({'name':'zhiliao',"age":18,"classroom":'111'})
writer.writerows(values)
读取csv文件:
import csv
with open('test.csv','r') as fp:
reader = csv.reader(fp)
titles = next(reader)
for x in reader:
print(x)
这样操作,以后获取数据的时候,就要通过下表来获取数据。如果想要在获取数据的时候通过标题来获取。那么可以使用DictReader。示例代码如下:
import csv
with open('test.csv','r') as fp:
reader = csv.DictReader(fp)
for x in reader:
print(x['name'])