一.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格式处理的更多相关文章

  1. python格式转换的记录

    Python的格式转换太难了. 与其说是难,具体来说应该是"每次都会忘记该怎么处理".所以于此记录,总的来说是编码+格式转换的记录. 本文记录环境:python3.6 经常见到的格 ...

  2. PYTHON 格式字符串中的填充符

    使用 %类型 来填充 常用的有:%s 填充字符串类型:%d 填充 int 类型:这里是沿用了 C语言中 printf() 函数中的格式,更多的信息请查看:完整列表 name = 'tommy' mes ...

  3. Python格式符说明

    格式化输出 例如我想输出 我的名字是xxxx 年龄是xxxx name = "Lucy"age = 17print("我的名字是%s,年龄是%d"%(name, ...

  4. f-Strings:一种改进Python格式字符串的新方法

    好消息是,F字符串在这里可以节省很多的时间.他们确实使格式化更容易.他们自Python 3.6开始加入标准库.您可以在PEP 498中阅读所有内容. 也称为“格式化字符串文字”,F字符串是开头有一个f ...

  5. Python——格式输出,基本数据

    一.问题点(有待解决) 1.Python中只有浮点数,20和20.0是否一样? from decimal import Decimal  a = Decimal('1.3') round() 参考文章 ...

  6. python 格式话-占位符

    格式化输出:name = qjage = 30job = itsalary = 6000例1:字符串拼接方法,不建议,因为会在内存中开辟多块内存空间. info = '''---------- inf ...

  7. Python格式输出汇总

    print ('%10s'%('test')) print ('{:<10}'.format('test'))#left-aligned print ('{:>10}'.format('t ...

  8. python格式字符

  9. Python web后端接收到的json数据有前端格式的布尔值 true false

    最近在后端处理前端传过来的json数据,发现,因为数据是各种数据格式的嵌套,使用json.loads(),无法将内层的数据转换为原来格式的数据,所以需要使用eval( )函数进行转换,但是如果数据含有 ...

随机推荐

  1. [bzoj1081]超级格雷码

    手动模拟一组样例,可以理解大致应该如何操作具体实现中,记录每一位当前应该+1还是-1,然后操作最低的位并将后面的+1和-1全部取反即可 1 #include<bits/stdc++.h> ...

  2. [bzoj1105]石头花园

    首先$C/2=x_{max}+y_{max}-x_{min}-y_{min}=max(x_{max},y_{max})-min(x_{min},y_{min})+min(x_{max},y_{max} ...

  3. 多线程03.实现Runnable接口

    package chapter2; public class TicketWindowRun implements Runnable { private static final int MAX =5 ...

  4. 2017Java前景怎么样?

    当今社会互联网软件行业属于高薪技术行业,伴随着互联网的发展Java在Web领域的优势也日渐凸显,并且java语言本身就应用最广泛,最高效.据说,全球有25亿Java器件运行着Java,450多万Jav ...

  5. 目前国内UI设计师的发展现状如何?

    在分析这个问题之前,我们先来说说如何优秀的UI设计师所需要具备的素质是什么,只有做到了以下几点,才有资格在这个行业生存下去的能力,也才有机会展望行业的未来前景. 一位合格的UI设计师必须做到以下3点: ...

  6. Codeforces 698F - Coprime Permutation(找性质)

    Codeforces 题面传送门 & 洛谷题面传送门 u1s1 感觉这个 D1F 比某道 jxd 作业里的 D1F 质量高多了啊,为啥这场的 D 进了 jxd 作业而这道题没进/yun 首先这 ...

  7. LOJ 2372 -「CEOI2002」臭虫集成电路公司(轮廓线 dp)

    题面传送门 u1s1 似乎这题全网无一题解?那就由我来写篇题解造福人类罢(伦敦雾 首先看这数据范围,一脸状压.考虑到每一层的状态与上面两层有关,因此每层转移到下一层的有用信息只有两层,需要用三进制保存 ...

  8. Codeforces 446D - DZY Loves Games(高斯消元+期望 DP+矩阵快速幂)

    Codeforces 题目传送门 & 洛谷题目传送门 神仙题,%%% 首先考虑所有格子都是陷阱格的情况,那显然就是一个矩阵快速幂,具体来说,设 \(f_{i,j}\) 表示走了 \(i\) 步 ...

  9. freeftpd的使用教程

    一.Freeftpd连接管理-黑名单.白名单 Freeftpd支持黑名单或白名单限制连接的客户端.同时只能使用其中之一.服务器通过客户端IP地址来判断是否允许其连接.其设置界面如下: 1.选择要使用白 ...

  10. 【6】蛋白质组学鉴定定量软件之MaxQuant

    目录 1.简介 2.下载安装 3.配置与运行 4.结果 5.Perseus后处理 6.小结 1.简介 2016年,德国马普所的Cox和蛋白质组学领域巨擘Matthias Mann合作开发了MaxQua ...