首页 > 编程语言 > 详细

Python——数据交换格式简要

时间:2019-04-14 15:00:00      阅读:219      评论:0      收藏:0      [点我收藏+]

简单数据交换格式

 

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(rC:\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(rC:\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(rC:\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(rC:\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(rC:\Users\Jery\Desktop\xml.ini,w)as fw: # 开始写入
    config.write(fw)

 

Python——数据交换格式简要

原文:https://www.cnblogs.com/Jery-9527/p/10705030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!