Python数据解析

前言

Python语言在人工智能以及计算机视觉领域十分热门,它处理数据的能力很出色,兼容各种常用的数据类型解析。程序无非就是一系列数据操作行为的集合,从输入到输出以求得人们期望的结果。Python在执行效率和开发效率中找到平衡点,很适合快速开发算法复杂,数据处理量大的应用。高效率的数据处理能力离不开结构化的数据交互,python当然对CSV,JSON、XML这些常用的结构化数据类型是完美兼容的。

Python CSV解析

CSV逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),它通常用于在电子表格软件和纯文本之间交互数据,其文件以纯文本形式存储表格数据(数字和文本)。从真正意义上说它并不是结构化的数据,而仅仅是一些用逗号分隔的原始字符串。

Python中对于特定的一些简单CSV文件用str.split(‘,’)就能满足要求,但是不推荐这么做,因为某些字段值可能存在嵌套关系。Python有专门用于解析和生成的CSV的库,如csv模块。

Python应用csv样例

#! /usr/bin/env python

import csv
from distutils.log import warn as printf
DATA = (
	('id', 'name', 'age','sex','wage'),
	(1, '小李', 24, 'm', '8000'),
	(2, '小王', 25, 'm', '6000'),
	(3, '小杜', 23, 'w', '6000'),
)
printf('*** Write CSV DATA')
f = open('wageinfo.csv','w',newline='')
writer = csv.writer(f)
for record in DATA:
	writer.writerow(record)
	print(record)
f.close()

printf('read csv data')
f = open('wageinfo.csv','r')
reader = csv.reader(f)
for id,name,age,sex,wage in reader:
	printf('id %s: name: %s age: %s sex: %s wage: %s' %(id,name,age,sex,wage))
f.close()

Python JSON数据解析

JSON(JavaScript Object Notation, JS 对象简谱)是轻量级的数据交换方式,也是以人类易读懂的方式传输结构化数据,这使得它在网络传输方面应用很广,前后端的数据交换格式通常也是JSON,python这门在网路爬虫方面性能优异的语言当然也会完美支持JSON的解析,在程序中引用json模块即可。

JSON本质是字符串,它通过键/值(key/value)的方式将数据结构化,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值,当然也可以进行多层嵌套以实现更为复杂的数据结构类型。

Python应用JSON样例

#! /usr/bin/env python

from distutils.log import warn as printf
from json import dumps
from pprint import pprint

BOOKs = {
	'2019010101':{
		'tilte':'Core Python Programming',
		'edition':2,
		'year':2019,
	},
	'2019010102':{
	'title':'Python web Development with Django',
	'authors':['Jeff Forcier','Pual Bissex','Wesley Chun'],
	'year':2019,
	},
	'2019010103':{
	'title':'Python Fundamenttals',
	'year':2019,
	},
}
printf(' RAW DICT')
printf('BOOKs')

printf('\n PRETTY_PRINTEDDICT')
pprint(BOOKs)

printf('\n RAW JSON')
printf(dumps(BOOKs))

printf('\n PRETTY_PRINTEDJSON')
printf(dumps(BOOKs,indent=4))

Python XML数据解析

XML 指可扩展标记语言(eXtensible Markup Language),是一种比较老的结构化数据格式,相比JSON来说还是比较难一眼就看清它的数据内容的,在高级语言程序中通常有相应的解析器来实现对XML格式化数据操作。

XML文档与HTML非常类似,但XML并不是HTML的替代,它们设计目的不同,XML 被设计用来传输和存储数据,其焦点是数据的内容,而HTML 被设计用来显示数据,其焦点是数据的外观。但它们的结构类似,由一些元素和属性构成。

Python应用XML样例

#! /usr/bin/env python

from xml.etree.ElementTree import Element,SubElement,tostring
from xml.dom.minidom import parseString

BOOKs = {
	'2019010101':{
		'tilte':'Core Python Programming',
		'edition':2,
		'year':2019,
	},
	'2019010102':{
	'title':'Python web Development with Django',
	'authors':['Jeff Forcier','Pual Bissex','Wesley Chun'],
	'year':2019,
	},
	'2019010103':{
	'title':'Python Fundamenttals',
	'year':2019,
	},
}

books = Element('books')
for isbn,info in BOOKs.items():
	book = SubElement(books,'book')
	info.setdefault('authors','Wesley Chun')
	info.setdefault('edition',1)
	for key,val in info.items():
		SubElement(book,key).text = ', '.join(str(val).split(':'))
		
xml = tostring(books)
print (' RAW XML')
print (xml)

print ('\nPRETTY_PRINTED XML')
dom = parseString(xml)
print (dom.toprettyxml('  '))

print (' FLAT STRUCTURE')
for elmt in books.getiterator():
	print (elmt.tag, '_',elmt.text)
	
print ('\n TITLES ONLY')
for book in books.findall('.//title'):
	print (book.text)

总结

Python在人工智能以及计算机视觉领域十分热门,它强大的类库支持对快速开发应用提供了可能性,相比于C/C++开发来说,它只需要一个简单的文件编辑工具,甚至连编译都不用就能运行代码,带你探索新世界。它既有近似于底层C/C++的运行效率,也有JAVA这种高级语言的面向对象开发效率,简直perfect,记2018年末于广州。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值