Python格式处理
一.CVS表格
import csv
villains = [
['Doctor', 'No'],
['Rosa', 'Klebb'],
['Mister', 'Big'],
['Auric', 'Goldfinger'],
['Ernst', 'Blofeld'],
]
with open('villains', 'wt') as fout: # 一个上下文管理器
csvout = csv.writer(fout)
csvout.writerows(villains)
#读取cvs
with open('villains', 'rt') as fin: # 一个上下文管理器
cin = csv.reader(fin)
villains = [row for row in cin] # 使用列表推导式
print(villains)
#读取成字典方式
with open('villains', 'rt') as fin:
cin = csv.DictReader(fin, fieldnames=['first', 'last'])
villains = [row for row in cin]
#将字典写入成标题在上面的方式
villains = [
{'first': 'Doctor', 'last': 'No'},
{'first': 'Rosa', 'last': 'Klebb'},
{'first': 'Mister', 'last': 'Big'},
{'first': 'Auric', 'last': 'Goldfinger'},
{'first': 'Ernst', 'last': 'Blofeld'},
]
with open('villains', 'wt') as fout:
cout = csv.DictWriter(fout, ['first', 'last'])
cout.writeheader()
cout.writerows(villains)
with open('villains', 'rt') as fin: #重头读取文件
cin = csv.DictReader(fin)
villains = [row for row in cin]
二.xml
menu.xml
<?xml version="1.0"?>
<menu>
<breakfast hours="7-11">
<item price="$6.00">breakfast burritos</item>
<item price="$4.00">pancakes</item>
</breakfast>
<lunch hours="11-3">
<item price="$5.00">hamburger</item>
</lunch>
<dinner hours="3-10">
<item price="8.00">spaghetti</item>
</dinner>
</menu>
import xml.etree.ElementTree as et
tree = et.ElementTree(file='menu.xml')
root = tree.getroot()
root.tag
#tag是标签字符串,attrib是属性的一个字典
for child in root:
print('tag:', child.tag, 'attributes:', child.attrib)
for grandchild in child:
print('\ttag:', grandchild.tag, 'attributes:', grandchild.attrib)
len(root) #菜单选择数目
len(roo[0]) #早餐项的数目
三.json
json字符串
menu = \
{
"breakfast": {
"hours": "7-11",
"items": {
"breakfast burritos": "$6.00",
"pancakes": "$4.00"
}
},
"lunch" : {
"hours": "11-3",
"items": {
"hamburger": "$5.00"
}
},
"dinner": {
"hours": "3-10",
"items": {
"spaghetti": "$8.00"
}
}
}
import json
menu_json = json.dumps(menu)
menu_json
menu2 = json.loads(menu_json) #解析成python结构
import datetime
now = datetime.datetime.utcnow()
json.dumps(now) #无法转换,因为标准json没有定义日期
#转换
now_str = str(now)
json.dumps(now_str) #可以转换了
from time import mktime
now_epoch = int(mktime(now.timetuple()))
json.dumps(now_epoch) #可以转换epoch值
class DTEncoder(json.JSONEncoder): #继承重载default方法
def default(self, obj):
# isinstance()检查obj的类型
if isinstance(obj, datetime.datetime):
return int(mktime(obj.timetuple()))
# 否则是普通解码器知道的东西:
return json.JSONEncoder.default(self, obj)
json.dumps(now, cls=DTEncoder)
四.yml
import yaml
with open('mcintyre.yaml', 'rt') as fin:
text = fin.read()
data = yaml.load(text)
data['details']
len(data['poems'])
data['poems'][1]['title'] #获得第二行
五.配置文件
[english]
greeting = Hello
[french]
greeting = Bonjour
[files]
home = /usr/local
# 简单的插入:
bin = %(home)s/bin
import configparser
cfg = configparser.ConfigParser()
cfg.read('settings.cfg')
cfg['french']
cfg['french']['greeting']
cfg['files']['bin']
#返回节点列表
config.sections()
#指定节点下的
config.options(section)
六.数据库
连接数据库,包含参数用户名、密码、服务器地址
connect()
创建一个cursor对象来管理查询
cursor()
对数据库执行一个或多个SQL命令
execute() 和 executemany()
得到execute之后的结果
fetchone()、fetchmany() 和 fetchall()
import sqlite3
conn = sqlite3.connect('enterprise.db')
curs = conn.cursor()
curs.execute('''CREATE TABLE zoo
(critter VARCHAR(20) PRIMARY KEY,
count INT,
damages FLOAT)''')
curs.execute('INSERT INTO zoo VALUES("duck", 5, 0.0)') #新增动物
curs.execute('INSERT INTO zoo VALUES("bear", 2, 1000.0)')
ins = 'INSERT INTO zoo (critter, count, damages) VALUES(?, ?, ?)'
curs.execute(ins, ('weasel', 1, 2000.0)) #更安全的插入数据方法
curs.execute('SELECT * FROM zoo') #获取数据
curs.fetchall()
curs.execute('SELECT * from zoo ORDER BY count') #按照count排序
curs.fetchall()
curs.execute('''SELECT * FROM zoo WHERE #哪种动物花费最多
damages = (SELECT MAX(damages) FROM zoo)''')
curs.close() #打开后要关闭

Python格式处理的更多相关文章
- python格式转换的记录
Python的格式转换太难了. 与其说是难,具体来说应该是"每次都会忘记该怎么处理".所以于此记录,总的来说是编码+格式转换的记录. 本文记录环境:python3.6 经常见到的格 ...
- PYTHON 格式字符串中的填充符
使用 %类型 来填充 常用的有:%s 填充字符串类型:%d 填充 int 类型:这里是沿用了 C语言中 printf() 函数中的格式,更多的信息请查看:完整列表 name = 'tommy' mes ...
- Python格式符说明
格式化输出 例如我想输出 我的名字是xxxx 年龄是xxxx name = "Lucy"age = 17print("我的名字是%s,年龄是%d"%(name, ...
- f-Strings:一种改进Python格式字符串的新方法
好消息是,F字符串在这里可以节省很多的时间.他们确实使格式化更容易.他们自Python 3.6开始加入标准库.您可以在PEP 498中阅读所有内容. 也称为“格式化字符串文字”,F字符串是开头有一个f ...
- Python——格式输出,基本数据
一.问题点(有待解决) 1.Python中只有浮点数,20和20.0是否一样? from decimal import Decimal a = Decimal('1.3') round() 参考文章 ...
- python 格式话-占位符
格式化输出:name = qjage = 30job = itsalary = 6000例1:字符串拼接方法,不建议,因为会在内存中开辟多块内存空间. info = '''---------- inf ...
- Python格式输出汇总
print ('%10s'%('test')) print ('{:<10}'.format('test'))#left-aligned print ('{:>10}'.format('t ...
- python格式字符
- Python web后端接收到的json数据有前端格式的布尔值 true false
最近在后端处理前端传过来的json数据,发现,因为数据是各种数据格式的嵌套,使用json.loads(),无法将内层的数据转换为原来格式的数据,所以需要使用eval( )函数进行转换,但是如果数据含有 ...
随机推荐
- Django笔记&教程 3-2 模板语法介绍
Django 自学笔记兼学习教程第3章第2节--模板语法介绍 点击查看教程总目录 参考:https://docs.djangoproject.com/en/2.2/topics/templates/# ...
- win10开机自启
所有用户的开机自启文件夹 英文路径 # ProgramData目录是隐藏的 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 中 ...
- 如何利用 JuiceFS 的性能工具做文件系统分析和调优
JuiceFS 是一款面向云原生环境设计的高性能 POSIX 文件系统,在 AGPL v3.0 开源协议下发布.作为一个云上的分布式文件系统,任何存入 JuiceFS 的数据都会按照一定规则拆分成数据 ...
- git连接远程仓库
1. 连接远程仓库 1.1. 创建仓库 在连接远程仓库之前,得先要确定你有一个远程仓库,到GitHub官网搞一个账户. 点右上角的加号然后"New repository"输入一个仓 ...
- Atcoder Grand Contest 001 F - Wide Swap(拓扑排序)
Atcoder 题面传送门 & 洛谷题面传送门 咦?鸽子 tzc 来补题解了?奇迹奇迹( 首先考虑什么样的排列可以得到.我们考虑 \(p\) 的逆排列 \(q\),那么每次操作的过程从逆排列的 ...
- Codeforces 1392H - ZS Shuffles Cards(DP+打表找规律)
Codeforces 题面传送门 & 洛谷题面传送门 真·两天前刚做过这场的 I 题,今天模拟赛就考了这场的 H 题,我怕不是预言带师 提供一种奇怪的做法,来自于同机房神仙们,该做法不需要 M ...
- Synteny和collinear的区别
在比较基因组学的时候,经常会听到"共线性"这个词,但是与其对应的有两个不同的概念,即 (1) synteny (2) collinear 二者的区别如下图所示: 可以看到,synt ...
- Markdown—.md文件是什么?怎么打开?
md全称markdown,markdown也是一种标记语言. md文件其实可以用常用的文本编辑器都可以打开. 用记事本打开,把markdown文件拖到记事本图标上就可以打开 . 用 subli ...
- mysql 除法运算保留小数的用法
说明:刚开始用的round(值1/值2*100,1) 结果没出效果,才搜到decimal函数 在工作中会遇到计算小数而且需要显现出小数末尾的0,我们会用到DECIMAL这个函数,这是一个函数非常强悍: ...
- linux系统中上传文件与下载文件的方式
方式一:FileZilla 使用FileZilla第三方工具 绿色版直接打开exe文件即可 主机:连接的linux服务器的IP地址 用户名:登录的用户名 密码:登录密码 端口:默认使用22 左边是自己 ...