- Python读取各种各样的文件格式(csv、json、xml)和数据库
Python有许多内置
或者第三方模块pandas
可以对文件进行读取
path='ZILLOW-M550_SALES.csv'
open(path).readline() #只读取第一行数据

path='ZILLOW-M550_SALES.csv'
open(path).readlines() #读取整个文件数据

pandas模块对于csv文件的读取最为友好,有read_csv
方法
import pandas as pd
df = pd.read_csv("ZILLOW-M550_SALES.csv")
df.head() #显示前5行

将JSON格式字符串转换为python字典,可以使用json模块以及其loads函数逐行加载下载好的数据文件
import json
path = 'M550_SALES.json'
records = [json.loads(line) for line in open(path)]
records[0]

python字典通过索引,并且索引是从0开始的,不像其他的语言是从1开始的。现在,只要以字符串的形式给出想要访问的键就可以得到当前记录中相应的值了:
import json
path = 'M550_SALES.json'
records = [json.loads(line) for line in open(path)]
#print json.dumps(records,indent=2)
records[0]['dataset'] #查询dataset键值

import json
import pandas as pd
%matplotlib inline
path = 'M550_SALES.json'
records = [json.loads(line) for line in open(path)]
#print json.dumps(records,indent=2)
df1 = records[0]['dataset']['data']
#print df1
df2 = pd.DataFrame(df1)
df2.set_index(0,inplace=True) #根据日期排序
print df2
df2.plot(figsize=(16,6)) #绘图函数


读取XML文件
XML是扩展标记语言(eXtensible Markup Language)的缩写。它看起来有些像我们上网时每天都要用到的HTML源码,但是有区别。它的设计初衷,不是为了展示Web页面,而是为了数据交换。
from bs4 import BeautifulSoup
with open('M550_SALES.xml') as f:
data = f.read()
print data

from bs4 import BeautifulSoup
with open('M550_SALES.xml') as f:
data = f.read()
#print data
soup = BeautifulSoup(data,"lxml")
df = soup.find_all('datum',type='date')
df = [item.text for item in df]
value = soup.find_all('datum',type='float')
#print value
value = [float(item.text) for item in value]
#print value
df2 = pd.DataFrame({'datas':df, 'value':value})
print df2

- 数据库文件未完待续
网友评论