简单数据交换格式

CSV:

一般用  open()  函数和字符串拆分  split()  方法,但python有内置的csv模块

读:

import csv

with open(r"C:\User\Jery\Desktop\测试.csv", 'r', encoding='utf-8')as rf:
r = csv.reader(rf, dialect=csv.excel)
for row in r:
print("|".join(row))

写:

import csv

with open(r"C:\User\Jery\Desktop\测试.csv", 'r', encoding='utf-8')as rf:
r = csv.reader(rf, dialect=csv.excel)
with open(r"C:\User\Jery\Desktop\测试_副本.csv", 'w', encoding='utf-8')as wf:
w = csv.writer(wf)
for row in r:
# print("|".join(row))
w.writerow(row)

参数newline设置为空字符,就是在写入一行数据时不再加换行符,默认writer写入数据是会加换行符。

XML

XML主要由标签构成,主要分为:

声明:如:<?xml version=”1.0” encoding=”UTF-8”?>

根元素:根元素只有一个

子元素:若为空,写法可以为<node/>

属性:<node id=”1”>

命名空间:<node xmlns:***=”***”>

限定名:特定元素或属性,如<node:body>

解析:SAX解析和DOM解析:

SAX基于事件驱动,遇到文档标签就会触发相应事件,只能读文档,解析速度快。

DOM基于文档对象,将文档作为树状结构分析,会获取节点内容及属性,一次性将文档读入内存,能够修改文档。

eg:

import xml.etree.ElementTree as ET

tree = ET.parse(r'C:\Users\Jery\Desktop\测试.xml')
root = tree.getroot()
print(type(tree))
print(root.tag)
for index,child in enumerate(root):
print('第{}个{}元素,属性{}'.format(index,child.tag,child.attrib))
for i,child_child in enumerate(child):
print('---标签{},内容{}---'.format(child_child.tag,child_child))

XPath:

import requests
from lxml import etree # 按tab键自动提示 url = ''
res = requests.get(url)
# 把网页变成xpath结构
res_xpath = etree.HTML(res.text)
type(res_xpath) # /text()提取文字,此处提取是绝对路径
res_xpath.xpath('/html/head/title/text()') # //提取任意独一无二的子节点,//后面是标签名字
res_xpath.xpath('//a/text()') # 单引号双引号嵌套使用
res_xpath.xpath('//a[@class=“menu”and @href="category"]/text()') # 使用[]指定提取第几个,前面用*效率低,全局筛选,最好用更细的标签
res_xpath.xpath('*[id="categoryList"]/li[1]//div[@class="video_title"]/text()') # 提取属性,提取链接,"."相对路径
for li in res_xpath.xpath('//ul[@id="categoryList"]/li'):
li.xpath('.//div/a[1]/@href') # 拼成链接
for li in res_xpath.xpath('//ul[@id="categoryList"]/li'):
print('http://www.pearvideo.com/'+li.xpath('./div/a/Chref')[0])

JSON:

Json文档结构:

对象:名称:值 对集合——对应python字典

数组:一连串元素集合——对应python列表/元组

解码:

loads()将JSON字符串进行解码,返回python数据

load()读取文件或流,对JSON数据进行解码,返回python数据

eg:

import json

j = r'{"name":"Jery","sex":"男","age":18,"array":[1,2,3]}'
j_dict = json.loads(j)
print(type(j_dict))
print(j_dict['name'])
print(j_dict['array'])
with open(r'C:\Users\Jery\Desktop\a.json','r',encoding='UTF-8')as f:
data = json.load(f)
print(type(data))
print(data)

配置文件ini

Windows系统配置文件ini:

结构:

节:包括若干个配置项。如:[Startup]

配置项:由键值对构成,默认等号隔开。如:RequireOS = Windows10

注释:单独占一行,默认用分号隔开。如:;Startup节

配置文件的读取:eg

import configparser

config = configparser.ConfigParser()  # 创建解析器对象
config.read(r'C:\Users\Jery\Desktop\xml.ini', encoding='gbk') # 读取并解析,编码格式依文件而定
print(config.sections()) # 返回所有节
print(config.options('desp')) # 返回desp节下配置项名
print(config['desp']['Pos']) # desp节下的Pos项值

配置文件的写入:

import configparser

config = configparser.ConfigParser()
config.read(r'C:\Users\Jery\Desktop\xml.ini',encoding='gbk')
config['desp']['Newtext'] = 'hello ini'
config.add_section('New_Section') # 添加节
config.set('New_Section','name','Jery') # 添加配置项
with open(r'C:\Users\Jery\Desktop\xml.ini','w')as fw: # 开始写入
config.write(fw)

Python——数据交换格式简要的更多相关文章

  1. python开发_json_一种轻量级的数据交换格式

    以下是我做的对于python中json模块的demo 运行效果: Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.16 ...

  2. json 数据交换格式与java

    http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...

  3. 常用两种数据交换格式之XML和JSON的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  4. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...

  5. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式

    JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - D ...

  6. Ajax-06 Ajax数据交换格式

    1.数据交换格式 服务端返回的数据,在本质上都是字符串,只是原生Ajax 或jQuery Ajax将这些字符串转换为容易理解的各种常用格式. a. Text 文本字符串 b.  XML JavaScr ...

  7. json:js和jquery中轻量级数据交换格式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  8. 数据交换格式XML和JSON对比

    1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...

  9. 2016/4/2 json:js和jquery中轻量级数据交换格式 例: 窗口弹出 popwindow

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

随机推荐

  1. Sublime Text 2 安装配置插件

    最近学习python,看网上推荐用sublime text2挺方便,就学习了一下对sublime text2 安装插件,先放在这里,以备以后查找 根据晚上资料修改,原文请看这里 Python的自动补全 ...

  2. PM2部署资料

    问题1:pm2的log怎么查看?(pm2 show (name))可以看到日志地址,直接查看 问题2:日志怎么清除:pm2 flush 问题3:修改日志输出路径 问题4:怎么重新加载,restart貌 ...

  3. (2)WePHP 控制器与使用模板

    <?php class C_index extends Action { public function __initialize() { echo"自动执行"; } pub ...

  4. 总结- H5项目常见问题汇总及解决方案(转)

    H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" co ...

  5. javascript总结27 :特殊引用类型String/Number/Boolean

    为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String/Number/Boolean 1  Number 例如: var s1 = "zhangsan&quo ...

  6. Linux查询系统信息命令

    Linux查看系统信息是比较基础的知识,所以这个应该都需要掌握,命令和解释如下: #uname -a           查看操作系统.内核.CPU信息 #head -n 1 /etc/issue   ...

  7. BZOJ 2460 [BeiJing2011]元素(线性基模板题)

    Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石.一般地,矿石越多则法力越强 ...

  8. Android-什么时候用ScrollView

    什么时候用 ScrollView ? 答:像以下这种情况,就是使用ScrollView: 摆放无顺序,无规律,并会超出屏幕的高度,就可以用ScrollView 错误的ScrollView示范,Scro ...

  9. DATEADD和DATEDIFF

    DateAdd函数 返回 返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔. 语法 DateAdd(interval, number, date) DateAdd 函数语 ...

  10. ftp服务器PDF文件在线查看

    曾做过电厂的项目,有一些功能需要和甲方的厂家对接,其中就有需要实现甲方ftp服务器上的PDF.JPG等文件的查看功能.就PDF文件为例,这里使用的是pdf插件,需要将参数通过链接发给ftp,获取到PD ...