Python:数据编码与处理
生活随笔
收集整理的這篇文章主要介紹了
Python:数据编码与处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、讀寫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:数据编码与处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python挖坑法实现快排
- 下一篇: python函数注释,参数后面加冒号:,