基于python的处理CSV文件和JSON数据的程序与设计

2018-01-17 10:41彭莉
锋绘 2018年7期
关键词:程序设计

彭莉

摘要:Python对初级程序员而言,是一种伟大的语言。从简单的文字处理到WWW浏览器再到游戏。

关键词:python;程序;设计

1 前言

Python是由Guido van Rossum在八十年代末和九十年代初,在荷蘭国家数学和计算机科学研究所设计出来的。Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏。

2 Python处理CSV文件和JSON数据的步骤

2.1 处理CSV文件步骤

CSV文件是简单的,缺少Excel电子表格的许多功能。例如,CSV文件中:值没有类型,所有东西都是字符串;没有字体大小或颜色的设置;没有多个工作表;不能指定单元格的宽度和高度;不能合并单元格;不能嵌入图像或图表。

找出当前工作目录中的所有CSV文件:读取每个文件的全部内容;跳过第一行,将内容写入一个新的CSV文件。

在代码层面上,这意味着该程序需要做到以下几点:循环遍历从os.listdir ()得到的文件列表,跳过非CSV文件;创建一个CSV Reader对象,读取该文件的内容,利用line num属性确定要跳过哪一行;创建一个CSV Writer对象,将读人的数据写入新文件。

2.2 处理JSON数据步骤

Python的json模块处理了JSON数据字符串和Python值之间转换的所有细节,得到了json.loads()和json.dumps()函数。JSON不能存储每一种Python值,它只能包含以下数据类型的值:字符串、整型、浮点型、布尔型、列表、字典和NoneType。

JSON不能表示Python特有的对象,如File对象、CSV Reader或Writer对象、Regex

对象或Selenium WebElement对象。

3 代码实现

3.1 处理csv文件代码

import csv,os

os.makedirs('headerRemoved,exist ok=True)

for csvFilenarne in os.listdir('.'):

if not csvFilename.endswtth('.csv'):

continue

prtnt('Removtng header from'+csvFtlename+'...')

csvRows=[]

csvFileObj=open(csvFilename)

readerObj=csv.reader(csvFileObj)

for row in readerObj:

if readerObj.line_num==1:

continue#skip first row

csvRows.append(row)

csvFtleObj.close()

csvFileObj=open(os.path.join('headerRe-moved,csvFtlename),'w',newline=")

csvWriter=csv.writer(csvFileObj)

for row in csvRows:

csvWriter.writerow(row)

csvFtleObj.close()

3.2 处理json数据代码

import json,requests,sys

if len(sys.argv)<2:

print('Usage:qutckWeather.py location')

sys.exit()

location=''.join(sys.argv[1:])

url='http://apt.openweathermap.org/data/2.5/forecast/ daily?q=%s&cnt=3'%(location)

response=requests.get(url)

response.raise_for_status()

weatherData=json.loads(response.text)

w=weatherDatar['list']

print('Current weather in%s:'%(location))

print(w[0]['weather'][0]['main'],'-',w[0]['weather'][0]['description'])

print()

print('Tomoxrow:')

print(w[1]['weather'][0]['main'],'-',w[1]['weather'][0]['description'])

print()

print('Day after tomorrow:')

print(w[2]['weather'][0]['main'],'-',w[2]['weather'][0]['description'])

4 小结

CSV和JSON是常见的纯文本格式,用于保存数据。它们很容易被程序解析,同时仍然让人可读,所以它们经常被用作简单的电子表格或网络应用程序的数据。csv和json模块大大简化了读取和写入CSV和JSUN文件的过程。

一个常见的任务是接受多种格式的数据,解析它,并获得需要的特定信息。这些任务往往非常特别,商业软件并不是最有帮助的。通过编写自己的脚本,可以让计算机处理大量以这些格式呈现的数据

参考文献

[1]罗霄,任勇,山秀明.基于Python的混合语言编程及其实现[J].计算机应用与软件,2004,(12).

[2]马珊珊.python在日常工作处理中的应用——以员工福利采购统计为例[J].电脑知识与技术,2018,(01).

猜你喜欢
程序设计
试论我国未决羁押程序的立法完善
瞒天过海——仿生设计萌到家
“程序猿”的生活什么样
设计秀
有种设计叫而专
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
设计之味