本次课程主要学习了Excel和JSON格式的一些读写操作。课程代码

一、Excel数据读写操作

1、安装模块

pip install xlrd
pip install xlwt
网不好可以采用三方库:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名

2、读取数据

(1)导入xlrd模块

import xlrd

(2)打开Excel文件读写数据,创建文件对象赋值给workfile:

workbook = xlrd.open_workbook(r'd:\\demo1.xlsx')

(3)获取工作表,创建表格对象table有三种方法:

table = workbook.sheet_names()   #获取所有工作表
table = workfile.sheet_by_index(0) #通过索引顺序获取
table = workfile.sheet_by_name('Sheet1') #通过名称获取

(4)获取行数和列数

nrows = table.nrows   #获取工作表行数
ncols = table.nclos #获取工作表列数

(5)获取指定单元格的数据,注意行和列的索引值都是从0开始

cell_A1 = table.cell(0,0).value   #获取A1位置的数据
cell_C1 = table.cell(2,3).value #获取C4位置的数据

一个读取demo:

# 导入xlwt模块

import xlrd

def read_excel():
# 打开文件
workbook = xlrd.open_workbook(r'F:\HelloWorld\10TenthClass\\demo1.xls')
# 获取所有sheet
print("\n共有如下几个数据表:\n")
print(workbook.sheet_names())
sheet2_name = workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
sheet2 = workbook.sheet_by_name('Sheet2') # sheet的名称,行数,列数
print("\nshee2共有行、列数:\n")
print(sheet2.name, sheet2.nrows, sheet2.ncols) # 获取整行和整列的值(数组)
rows = sheet2.row_values(2) # 获取第3行内容
cols = sheet2.col_values(1) # 获取第2列内容
print("\nshee2第3行的内容:")
print(rows)
print("\nshee2第2列的内容:")
print(cols) # 获取单元格内容
print("\n三种方法获取shee2第2行第1列的内容:")
print(sheet2.cell(1, 0).value)
print(sheet2.cell_value(1, 0))
print(sheet2.row(1)[0].value) # 获取单元格内容的数据类型
print("\nshee2第2行第1列的数据类型为:")
print(sheet2.cell(1, 0).ctype) if __name__ == '__main__':
read_excel()

3、写入数据

(1)导入xlwt模块

import xlwt

(2)新建一个excel文件

file = xlwt.Workbook()   #注意Workbook首字母大写

(3)新建一个sheet工作表

table = file.add_sheet('sheet name')

(4)写入数据table.write(行,列,value)

table.write(0,0,'test')

(5)保存文件

file.save('Excel_Test.xls')

一个写入demo:

import xlwt

wbk = xlwt.Workbook()
sheet = wbk.add_sheet('MySheet1')
sheet.write(0,1,'111')
sheet.write(1,1,'222')
sheet.write(5,5,'我们正在学习文件操作') # 从0开始索引,在表格中会显示在(F,6)
wbk.save('Excel_Test.xls') #默认保存在与程序同文件夹下

二、字典

Python字典是包含多个元素的一种可变数据类型。其元素由“键:值”对组成,即每个元素包含“”和“”两部分。

1、字典的定义

用大括号"{}"把元素括起来构成一个字典对象。字典中的元素用“字典名[键名]”表示。

D = {'ID':1001, 'name':'张三', 'age':23}
print(D)
print(D['ID'])
print(D['name'])
print(D['age'])

2、字典的操作

(1)字典元素的修改

uil = {'name':'http', 'port':80}
uil['name'] = 'ftp'
uil['port'] = 90
print(uil)

(2)字典元素的添加

D = {'ID':1001, 'name':'张三', 'age':23}
print(D)
print(D['ID'])
print(D['name'])
print(D['age'])
D['sex'] = '男'
print(D)

三、JSON格式

1、JSON数据

JSON数据值可以是一个简单的字符串(String)、数值(Number)、布尔值(Boolean),也可以是一个数组或一个复杂的Object对象。

  • JSON的字符串需要用单引号或双引号括起来
  • JSON数值可以是整数或浮点数
  • JSON的布尔值为true或false
  • JSON的数组用方括号括起来
  • JSON的Object对象用花括号括起来

2、表示数据(简洁高效)

(1)、用键-值对表示数据

JSON数据书写格式:键名{key}:值{value}

key必须是字符串 : value可以是字符串、数值、布尔值

'firstName':'John'

(2)、JSON对象

JSON对象可以包含多个键-值对,要求在花括号“{}”中书写

{'firstName':'John' ,'lastName':'Doe' ,'age':20}

当然,JSON对象的值也可以是另一个对象。

{
'Name':'Jack',
'age':20,
'friend':{'Name':'Tom','age':18}
}

(3)、JSON数组

直接看一组案例:

students=[
{'sid':001,'name':'张三'},
{'sid':002,'name':'李四'},
{'sid':003,'name':'王五'},
] 访问:
students[0].name;
修改:
students[0].name='张一山';

(4)、JSON文件

保存文件,文件类型为“.json”

3、JSON模块

JSON模块是Python标准库所提供的,对JSON数据进行解析,将JSON格式数据与Python标准数据类型相互转换。

python数据类型 JSON格式数据
dict object
list array
str string
None null

(1)导入模块

import json

(2)编码与解码

主要方法:

编码:json.dumps(obj) 将JSON对象obj转成成Python的数据类型

解码:json.loads(str) 将Python数据类型转换回JSON对象

json.dump()把数据写入文件write中,json.load()把文件中的数据读取read出来。

4、读取JSON文件

读取一组数据:

import json

data = {
'name' : 'zhangdasan',
'age' : 21,
'email' : 'zdsan@163.com'
} with open('test.json', 'w') as f:
json.dump(data, f)
print('成功写入数据到文件!\n')
f.close() with open('test.json', encoding='utf-8') as f:
line = f.readline()
d = json.loads(line)
name = d['name']
age = d['age']
email = d['email']
print(name, age, email)
f.close()

读取多组数据:

import json

data = [
{"sid":"a1001","name":"zhangdasan","age": 21},
{"sid":"a1002","name":"lixianli","age": 20},
{"sid":"a1003","name":"zhaozhijian","age": 22},
] f1 = open('test.json', 'w')
json.dump(data, f1)
print('成功写入数据到文件!\n')
f1.close() f2 = open('test.json', encoding='utf-8')
line = f2.readline()
d = json.loads(line)
print(d)
for i in d:
sid = i['sid']
name = i['name']
age = i['age']
print(sid,name, age)
f2.close()

5、一道作业题

作业:

将你和2位同学的姓名、专业、年龄、籍贯用json格式表示,

并且保存为stu.json磁盘文件,还要读出这3条内容。

import json

data = [
{"name":"王哲铭","age":20,"profession":"信息工程","hometown":"湖北"},
{"name":"杨幂","age":18,"profession":"表演艺术","hometown":"北京"},
{"name":"杨超越","age":18,"profession":"音乐创作","hometown":"江苏"},
]
f1 = open('stu.json', 'w')
json.dump(data, f1)
print('成功写入数据到文件!\n')
f1.close() f2 = open('stu.json', encoding='utf-8')
line = f2.readline()
d = json.loads(line)
print(d)
for i in d:
name = i['name']
age = i['age']
profession = i['profession']
hometown = i['hometown']
print(name, age, profession, hometown)
f2.close()

最新文章

  1. 【类库】容器对象(List、DataTable、 DataView、Dictionary)
  2. CodeSnippet.info整体技术构架
  3. iOS学习35数据处理之文件读写
  4. 基于WDF的PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建
  5. php-fpm.conf 重要参数 max_children 和 request_terminate_timeout(转)
  6. Qt之QAbstractItemView视图项拖拽(一)
  7. WCF 异步调用问题
  8. Bootstrap页面布局10 - BS代码
  9. java编写二叉树以及前序遍历、中序遍历和后序遍历 .
  10. We need the sql script to query the table Ditronics.Kiosk.Journal to find journal with mismatch denom information versus amount.
  11. ECharts使用记
  12. Stanford CoreNLP--功能列表
  13. 初次接触GWT,知识点总括
  14. UUID 生成(源代码编译)
  15. ffmpeg参数说明
  16. 5.request对象详解
  17. Leetcode_228_Summary Ranges
  18. 多版本python及多版本pip使用
  19. 阿里云 oss 上传文件,js直传,.net 签名,回调
  20. 环境部署(一):Linux下安装JDK

热门文章

  1. python库--flashtext--大规模数据清洗利器
  2. python关键字--yield
  3. [第十四篇]——Docker Machine之Spring Cloud直播商城 b2b2c电子商务技术总结
  4. 数据库实验sql代码 myemployees 以及mygirl
  5. study day2
  6. 聊聊ReentrantLock基于AQS的公平锁和非公平锁的实现区别
  7. nginx 常用教程网址
  8. Windows命令行在任意位置启动和退出nginx
  9. Douban Top 250爬虫
  10. 编译原理: FIRST(x) FOLLOW(x) SELECT(x)的计算