一、读写CSV数据

(1)使用csv库处理CSV数据

import csv
with open('./stock.csv') as f:f_csv = csv.reader(f)headers = next(f_csv)for row in f_csv:# process row

由于每一行的row是个列表,访问需要用row[0]、row[1],

(2)可以考虑转换成命名元组访问。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import csv
from collections import namedtuplewith open('./stock.csv') as f:f_csv = csv.reader(f)headers = next(f_csv)Row = namedtuple('Row',headers)for r in f_csv:row = Row(*r)# process row

(3)转换为字典

import csv
with open('./stock.csv') as f:f_csv = csv.DictReader(f)for row in f_csv:# process row

写入CSV数据:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import csv
headers = ['Symbol', 'Price', 'Date', 'Time', 'Change', 'Volume']
rows = [('AA', '39.48', '6/11/2007', '9:34am', '-0.18', '428900'),('BB', '48.54', '8/25/2001', '19:57am', '-0.44', '142800'),('CC', '92.13', '3/18/1886', '3:11am', '-0.67', '126700'),('DD', '79.25', '2/05/1999', '8:22am', '-0.27', '110000'),
]with open('stock2.csv','w') as f:f_csv = csv.writer(f)f_csv.writerow(headers)f_csv.writerows(rows)

如果数据是字典序列,那么可以这样处理:

import csv
headers = ['Symbol', 'Price', 'Date', 'Time', 'Change', 'Volume']
rows = [{'Symbol':'AA','Price':39.48,'Date':'6/11/2007', 'Time':'9:34am', 'Change':-0.18, 'Volume':428900}
]with open('stock2.csv','w') as f:f_csv = csv.DictWriter(f, headers)f_csv.writeheader()f_csv.writerows(rows)

标题行出现非法字符,需要进行转换。

import re
with open('./stock.csv') as f:f_csv = csv.reader(f)headers = [ re.sub('[^a-zA-Z_]', '_', h) for h in next(f_csv)]

读取数据时,将部分数据转换成除字符串之外的类型。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import csv,recol_type = [str,float,str,str,float,str]
with open('./stock.csv') as f:f_csv = csv.reader(f)headers = [ re.sub('[^a-zA-Z_]', '_', h) for h in next(f_csv)]for row in f_csv:row = tuple( convert(value)for convert, value in zip(col_type, row) )

字段转化成字典:

field_type = [('Price',float),('Change',float),('Volume',int),
]with open('./stock.csv') as f:for row in csv.DictReader(f):row.update( (key,convert(row[key])) for key, convert in field_type)print(row)

二、读写JSON数据

(1)字符串形式:json.dumps()、json.loads()

(2)文件形式:json.dump()、json.load()

(3)使用pprint()函数,合理格式输出 或者 在json.dumps()函数中使用indext参数

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> from urllib.request import urlopen>>> pprint(json_resp)>>> print(json.dumps(data, indent=4))

(4)load时解码为OrderDict有序字典

>>> from collections import OrderedDict>>> data = json.loads(s, object_pairs_hook=OrderedDict)

(5)JSON字典转变为Python对象

Python:数据编码与处理相关推荐

  1. Python解码、编码Json的方法详解

    python对象编码为json的方法: json.dumps(data) : 把python字典,转化为json字符串 json.dump(data) : 将python字典写入json文件 demj ...

  2. base6 python 字节_Python使用base64模块进行二进制数据编码详解

    前言 昨天团队的学妹来问关于POP3协议的问题,所以今天稍稍研究了下POP3协议的格式和Python里面的poplib.而POP服务器往回传的数据里有一部分需要用到Base64进行解码,所以就顺便看了 ...

  3. python dd 合并二进制文件_马克的Python学习笔记#数据编码与处理 5

    读写二进制结构的数组 一般情况下来说,我们可以使用struct模块,比如我们可以像这样将一列Python元组写入到一个二进制文件之中,通过struct模块将每个元组编码为一个结构. from 当然,如 ...

  4. python:Base16, Base32, Base64, Base85 数据编码

    python:Base16, Base32, Base64, Base85 数据编码 此模块提供了将二进制数据编码为可打印的 ASCII 字符以及将这种编码格式解码回二进制数据的函数. 它为 RFC ...

  5. 关于分类数据编码所需了解的所有信息(使用Python代码)

    作者|SHIPRA SAXENA 编译|Flin 来源|analyticsvidhya 总览 了解什么是分类数据编码 了解不同的编码技术以及何时使用它们 介绍 机器学习模型的性能不仅取决于模型和超参数 ...

  6. python实现数据编码(独热编码+归一化)

    实现功能: python实现数据编码,对离散型变量进行独热编码,对数值型变量进行归一化处理. 实现代码: import numpy as np import pandas as pddef Read_ ...

  7. Python 十六进制转Base64_马克的Python学习笔记#数据编码与处理 4

    同关系型数据库进行交互 在Python中,表达行数据的表尊方式就是采用元组序列.当数据以这种形式呈现的时候,通过Python标准API来同关系型数据库进行交互相对来说就显得很直接了.这个API的要点就 ...

  8. Python(六)数据编码与处理

    1.读写CSV数据 CSV数据: Symbol,Price,Date,Time,Change,Volume "AA",39.48,"6/11/2007",&qu ...

  9. python html 中文 编码,如何用Python将HTML非ASCII数据编码为UTF-8

    我试着这么做,却发现了这个错误:>>> import re >>> x = 'Ingl\xeas' >>> x 'Ingl\xeas' >& ...

最新文章

  1. c++ argmax
  2. Java获取yahoo天气预报
  3. 网络:forward和redirect的区别
  4. 2.安装号mysql后当重启Linux服务器之后发现进入不了的解决方案
  5. AQuery学习笔记(一)
  6. 怎么在idea中找实现类
  7. vue项目中阻止浏览器返回上一页
  8. GDB调试程序实例演示
  9. jQueryEasyUI框架 - panel 选项卡高度自适应
  10. 如何使用dtls协议抵御重放攻击
  11. python自动轨迹绘制_自动轨道图,轨迹,绘制
  12. 免费中文api文档!免费java帮助文档api中文版!!!!!
  13. Matlab机器学习入门(一)
  14. java 微信红包_教你用java做个微信红包!
  15. 流星宝盒直播聚合平台
  16. uniapp使用canvas画海报二维码
  17. 北京住房公积金管理中心个人住房公积金 贷款等额均还月还款额参考表
  18. 真实案例:网站遭遇DOS攻击
  19. css背景渐变神器(Cool Backgrouds)一键生成
  20. 豆豆趣事[2016年06月]

热门文章

  1. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order
  2. 利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)
  3. 总结之:CentOS6.5 LAMP的基本原理以及分主机架构解析
  4. 能简单才不简单,仿Flickr.com:基于Flash+jQuery的一次性划选多文件并上传
  5. ABAP表抛FTP通用程序
  6. 通用分销渠道和通用产品组的解析
  7. PPT 2016 后台播放功能
  8. 2、Power View—风骚的数据自动筛选
  9. SAP的模块化服务应用市场Hybris,前景如何?
  10. smartforms金额或者数量字段显示不出来