[数据处理]python读取常见类型数据

写在前面:
常见的机器可读格式包括:逗号分割值(CSV)、JavaScript对象符号(json)、可扩展标记语言(xml)

1.CSV数据

还有一个TSV数据类型,数据列之间的分隔符是制表符不是逗号,作用和CSV文件相同,解析数据的时候可以参照CSV文件的解析方式
数据读取的代码:

import csv
csvfile=open("G:\\桌面文件夹\\下载\\csv样本文件\\xh.csv","r")
#第一种打开方式:
#打开csv文件,以列表格式打开,每一行都是一个列表
#reader=csv.reader(csvfile)
#第二种打开方式:
#以字典格式打开,第一行为列,其余的都对应为各个键的值
reader=csv.DictReader(csvfile)
for x in reader:
	print(x)
	pass

2 JSON数据

扩展名为.json;每一条数据记录很像一个Python字典,每行都有键和值,用冒号分割,数据条目之间用逗号分割,首尾还有花括号围,最外层还有一个中括号把所有的数据条目包裹。形如:[{键1:值1,键2:值2},{键1:值1,键2:值2},{键1:值1,键2:值2}]
数据读取的代码:

import json
import pprint
'''
打开文件,json_data是json文件中的原始内容,即[{},{}]这种格式的内容
json.loads(json_data):将json原始内容加载,此时是去掉的[]的数据
循环遍历json数据中的每一个字典
'''
json_data=open("G:\\桌面文件夹\\ME的\\now\\data-text.json").read()
data=json.loads(json_data)
for x in data:
	pprint.pprint(x)
	pass

3 XML数据

文件名是.xml是xml数据。此外,如果扩展名是.html或者.xhtml有时也可以用xml解析器来解析。
常用的语法:

  1. 导入解析xml的库:from xml.etree import ElementTree as ET
  2. 获取根节点:tree.getroot()
  3. 获取节点的属性:节点对象.attrib
  4. 获取指定节点的属性的值:节点对象.attrib[‘属性名称’]

数据读取的代码:

from xml.etree import ElementTree as ET
import pprint
tree = ET.parse("G:\\桌面文件夹\\ME的\\now\\data-text.xml")
root = tree.getroot()
data = root.find('Data')
all_data = []
for observation in data:
	for item in observation:
		record = {}
		pprint.pprint(list(item.attrib)[0])
		lookup_key = list(item.attrib)[0]
		if lookup_key == 'Numeric':
			rec_key = 'NUMERIC'
			#记录Numeric属性的值
			rec_value = item.attrib['Numeric']
			record[rec_key] = rec_value
		else:
			rec_key = lookup_key
			# 记录Code属性的值
			rec_value = item.attrib['Category']
			record[rec_key] = rec_value
		all_data.append(record)
pprint.pprint(all_data)

注意:
上面代码功能比较呆板,不建议套用,最好还是学习一下xml结构,和相关的解析xml操作,自己编写解析xml的程序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值