python数据处理----常用数据文件的处理
数据处理时,常用数据存储形式主要有:CSV、JSON、XML、EXCEL、数据库存储。
一、CSV文件
- csv文件简介
 
CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或者制表符。
- csv文件样式
 
John,Doe,120 jefferson st.,Riverside, NJ, 08075
Jack,McGinnis,220 hobo Av.,Phila, PA,09119
- python处理
 
import csv
if __name__=='__main__':
csvfile=open('E:\\pythonwork\\data\\iris.csv','r')
#reader = csv.reader(csvfile)
reader = csv.DictReader(csvfile)
for row in reader:
print(row)
二、JSON文件
- json文件简介
 
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
- json文件样式
 
{"application_instance_id":102061,"application_node":"10.45.44.44","billing_info":[{"application_batch_nums":1.0,"cdr_nums":2,"charge":46.0,"event_format_id":999,"exec_time_consume":120087,"lan_id":743,"serv_nums":2,"service_id":3,"src_net_data_id":123,"stat_batch_id":102061101001,"stat_cdr_type":10},{"application_batch_nums":0.0,"cdr_nums":2,"charge":0.0,"event_format_id":42,"exec_time_consume":0,"lan_id":743,"serv_nums":0,"service_id":3,"src_net_data_id":123,"stat_batch_id":102061101001,"stat_cdr_type":20},{"application_batch_nums":0.0,"cdr_nums":2,"charge":0.0,"event_format_id":41,"exec_time_consume":0,"lan_id":743,"serv_nums":0,"service_id":3,"src_net_data_id":123,"stat_batch_id":102061101001,"stat_cdr_type":20},{"application_batch_nums":0.0,"cdr_nums":2,"charge":0.0,"event_format_id":34,"exec_time_consume":0,"lan_id":743,"serv_nums":0,"service_id":3,"src_net_data_id":123,"stat_batch_id":102061101001,"stat_cdr_type":20}],"exec_end_time":"20180830174554","exec_start_time":"20180830174554"}
- python读取json文件
 
import json
if __name__ == '__main__':
json_data = open('E:\\pythonwork\\data\\test.json', 'r').read()
data = json.loads(json_data)
print((data.values()))
for row in data.values():
print(row)
三 、XML文件
- xml文件介绍
 
可扩展标记语言(XML)与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML的宗旨传输数据的,而与其同属标准通用标记语言的HTML主要用于显示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
- xml文件样式
 

- xml文件处理
 
- dom方式处理
 
#通过dom的方式解析xml
import xml.dom.minidom as xmldom
import os
from getbyxmltree import parse_xml_etree
def get_node(node, nodename):
return node.getElementsByTagName(nodename) if node else '' def get_nodevalue(node,index=0):
return node.childNodes[index].nodeValue if node else '' def get_nodeattr(node,attrname):
return node.getAttribute(attrname) if node else '' def parse_dom_xml(path):
xmlfilepath=os.path.abspath(path)
print(u'文件路径:',xmlfilepath)
# 获得文档对象
domobj = xmldom.parse(xmlfilepath)
elemobj = domobj.documentElement
print(elemobj)
dsn_node = get_node(elemobj ,'DsnInfo')
dsn_list=[]
for node in dsn_node:
node_name=get_node(node,'DsnName')
node_ip1 = get_node(node,'IP1')
node_port1=get_node(node,'Port1')
node_ip2 = get_node(node, 'IP2')
node_port2 = get_node(node, 'Port2')
#获取VALUE
dsn_name = get_nodevalue(node_name[0])
dsn_ip1 = get_nodevalue(node_ip1[0])
dsp_port1 = get_nodevalue(node_port1[0])
dsn_ip2 = get_nodevalue(node_ip2[0])
dsp_port2 = get_nodevalue(node_port2[0])
dsn_info={}
dsn_info['dsn_name'], dsn_info['ip1'], dsn_info['port1'], dsn_info['ip2'], dsn_info['port2'] = (
dsn_name, dsn_ip1, dsp_port1, dsn_ip2, dsp_port2
)
dsn_list.append(dsn_info)
return dsn_list
- ctree方式
 
try:
import xml.etree.cElementTree as xmltree
except:
import xml.etree.ElementTree as xmltree
import sys,os def transxml(node):
if node:
for child in node:
if child.tag == 'IP1':
print('child tag:%s,value:%s' % (child.tag,child.text))
transxml(child) def parse_xml_etree(path):
xmlfilepath = os.path.abspath(path)
print(u'文件路径:', xmlfilepath)
tree = xmltree.parse(xmlfilepath)
root = tree.getroot()
print('root=',type(root))
'''
print(u"按照下标访问")
print(tree.getroot()[0][1].tag)
print(tree.getroot()[0][1].text)
'''
print(u"查找标签")
ip_list= root[0].findall('DsnInfo')
print(len(ip_list))
for ip in ip_list:
print(type(ip))
print("tag:%s\ntext:%s\n" % (ip.tag,ip.text))
print(u"迭代")
for node in root.iter('DsnInfo'):
print(node.tag)
print(type(node)) #print(u"遍历")
#transxml(tree.getroot())
四、预告
下次更新将主要介绍EXCEL方式处理。扫描二维码关注公众号

python数据处理----常用数据文件的处理的更多相关文章
- python 数据处理 对csv文件进行数据处理
		
数据如下图: 用python对数据进行处理: #读取csv文件内容并进行数据处理 import os import csv import datetime import re from itertoo ...
 - python——读取MATLAB数据文件 *.mat
		
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可 ...
 - 利用Python读取外部数据文件
		
不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数 ...
 - python中常用的文件和目录操作(一)
		
常用的文件操作 1. 打开文件 open,它是一个内置函数,可以直接调用 语法:file object = open(file_name, [access_mode]),这里我们会创建一个file对象 ...
 - Python数据处理常用工具(pandas)
		
目录 数据清洗的常用工具--Pandas 数据清洗的常用工具 Pandas常用数据结构series和方法 Pandas常用数据结构dataframe和方法 常用方法 数据清洗的常用工具--Pandas ...
 - python 数据处理 对txt文件进行数据处理
		
数据: 对txt文件进行数据处理: txt_file_path = "basic_info.txt" write_txt_file_path = "basic_info1 ...
 - python中常用的文件和目录操作(二)
		
一. os模块概述 python os模块提供了非常丰富的方法用来处理文件和目录 二. 导入os模块: import os 三. 常用方法 1. os.name 输出字符串表示正在使用的平台,如果是w ...
 - Python数据处理和数据可视化
		
工具1:numpy 下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 入门文档:https://docs.scipy.org/doc/nump ...
 - python爬虫常用数据整理函数
		
text() 获取xpath中的值....../h1/text() extract()[0] Selector的方法用于提取内容为 ...
 
随机推荐
- js动态显示当前时间+数字大小转换+小于9前面补0
			
<script type="text/javascript"> function getTime(){ var myDate = new Date(); // 年份 d ...
 - rpm 方式安装java
			
1.rpm下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.如果有安装openjdk 则卸载 #### ...
 - raw文件转mha文件
			
raw格式 在体数据(volume)中,经常会遇到raw文件,raw文件就是其实就是所有体素组成的文件,raw文件必须还有一些描信息才能用(因为得知道数据的size,type,spacing等),就像 ...
 - 《JAVA 程序员面试宝典(第四版)》之循环、条件、概率
			
分享内容:关于集合的使用 书页号码:77页 题目:一个字符串中包含a~z中的多个字符,如有重复,如String data = "aavzcadfdsfsdhshgwasdfasd ...
 - django_0:项目流程
			
1.django-admin(.py) startproject mysite——创建项目project 得到__init__.py(说明工程以包结构存在) settings.py(当前工程的一些配置 ...
 - 使用navicat操作PostPreSql创建表并设置主键自增和触发器
			
使用navicat操作PostPreSql创建表并设置主键自增和触发器 1).创建递增序列 2).创建表,使用序列,设置主键递增 3)定义触发函数 自动生成时间戳函数 CREATE OR REPLAC ...
 - 网站统计IP PV UV
			
###我只是一个搬运工 网站流量统计可以帮助我们分析网站的访问和广告来访等数据,里面包含很多数据的,比如访问使用的系统,浏览器,ip归属地,访问时间,搜索引擎来源,广告效果等. PV(访问量):Pag ...
 - Ajax与Http协议
			
目录 Ajax与Http协议详解 Xhr对象 xhr对象发送请求整体感知 xhr对象的常用属性和方法 xhr对象发送post请求 xhr对象的兼容性问题 请求超时timeout与监听超时ontimeo ...
 - (四十五)golang--反射
			
反射基本介绍: (1)反射可以在运行时动态获取变量的各种信息,比如变量的类型.类别: (2)如果是结构体变量,还可以获取结构体本身的信息(包括结构体字段.方法): (3)通过反射,可以修改变量的值,可 ...
 - 【前端】 在前端利用数学函数知识+box-shadow解波浪图形
			
序 今天正在刷数学函数相关题目,刷到了下面这篇文章,哇哦-有意思. 利用cos和sin实现复杂的曲线.传送门在下面. CSS 技巧一则 -- 在 CSS 中使用三角函数绘制曲线图形及展示动画 正巧在复 ...