一、json读写转化
1、转化为json串
import json
persons =[
{
'username':"张三",
'age':10,
'country':'china'
},
{
'username': "hh",
'age': 20,
'country': 'china'
}
]
print(type(persons))
#python 对象转化为json字符串
#只用int float str list dict tuple能转化为json字符串
#dumps python 对象转化为json字符串,转化过程要不禁止ascii码,否则不显示中文
json_str = json.dumps(persons,ensure_ascii=False)
print(json_str)
print(type(json_str))
#文件的打开方式采用utf-8的格式打开
with open("a.json",'w',encoding='utf-8') as fp:
fp.write(json_str)
结果:
json字符串内容:
2、json转化为list对象
#================================================
#json字符串转化为list对象
#load()将json字符串转化为list对象
#json_str接上面代码的结果
#person_py =[{"username": "张三", "age": 10, "country": "china"}, {"username": "hh", "age": 20, "country": "china"}]
person_py =json.loads(json_str)
print(type(person_py))
for item in person_py:
print(item)
结果:
总结:
1、从结果上来看,json字符串与我们Python列表加字典组合的格式显示是一致的,但从类型上说确实改变。
2、dumps是用于转化为json字符串,注意中文的时候,禁止ascii编码(这是默认的)
3、loads用于json串转化为list对象
4、dump有丢入的意思,load有装上的意思。
口诀:丢入成json,装上成列表!!!
2、csv写操作
#encoding: utf-8
import csv
#将元组类型写入csv
def write_csv_demo1():
headers = {'username','age','height'}
#值为元组类型
values ={
('张三',18,180),
('李四',19,190),
('王武',20,160)
}
#newline默认为\n,插入时,自动换行,
with open('classroom.csv','w',encoding="utf-8",newline='')as fp:
writer = csv.writer(fp)
#插入一行
writer.writerow(headers)
writer.writerows(values)
#将字典类型写入csv
def write_csv_demo2():
headers = {'username','age','height'}
values = [
{'username':'张三','age':18,'height':180},
{'username': '李四', 'age': 19, 'height': 180},
{'username': '王五', 'age': 20, 'height': 190}
]
with open('classroo1.csv','w',encoding='utf-8',newline="") as fp:
writer = csv.DictWriter(fp,headers)
#传入的标头不会写入,写入表头数据的时候,需要调用writeheader方法
writer.writeheader()
writer.writerows(values)
# if __name__ == '__main__':
# write_csv_demo2()
####################################################
#csv文件的读取
def read_csv_demo1():
with open("classroo1.csv",'r',encoding='utf-8') as fp:
#reader是一个迭代器
reader = csv.reader(fp)
#跳过表头
# next(reader)
for x in reader:
#print(x)
name = x[0]
age = x[1]
print('name:'+name,"age:"+age)
def read_csv_demo2():
# 使用DictReader创建的reader对象
# 不包含标题那行
# reader是一个迭代器,遍历这个迭代器,返回来的是一个字典
with open("classroo1.csv",'r',encoding='utf-8') as fp:
reader = csv.DictReader(fp)
for x in reader:
value = {"name": x["username"],'age' : x["age"]}
print(value)
#print(x)