使用python簡單處理json, csv,excel文件

1 excel部分:

主要是xlrd包的使用,這裏比較簡單,如需要詳細信息請查找python有關文檔

import xlrd

def xl_read():
    """excel讀取"""
    book = xlrd.open_workbook('path')      #獲取全部文件數據
    sheet = book.sheet_by_index(1)         #獲取第一個工作表
    sheet = book.sheet_by_name('name')     #通過工作表名稱獲取對象
    print(sheet.nrows)                     #獲取行數
    for sheet in book.sheets() :           #獲取所有標籤
        print(sheet.name)
    for i in (sheet.nrows):
        print(sheet.row_values(i))         #獲取行索引



if __name__ == '__main__':
    xl_read()

2 json部分
主要是導入json包進行操作

import json
#json格式和字典表類似,但存在差異

def jiso_basic():
    data = {
        'ID' : 1,
        '課程' :'python',
        '機構' :'課堂',
        "單價" : 'http:..code'
    }
    print(data)
    jion_str = json.dumps(data)   #將格式變爲json格式字符串
    print(jion_str)
    jion_data = json.loads(jion_str)   #將數據還原
    print(jion_data)

def jion_writer_file():
    """寫json文檔"""
    data = {
        'ID': 1,
        '課程': 'python',
        '機構': '課堂',
        "單價": 'http:..code'
    }
    with open('data.json','w',encoding='utf8') as f:
        json.dump(data,f)                           #同時完成寫入


def json_read_file():
    """讀取文件"""
    with open('data.json','r',encoding='utf8') as f:
        data = json.load(f)                 #讀取文件
        print(data)

def json_type_diff():
    """類型差異"""
    print(json.dump(False))        #結果是flase
    print(json.dump(None))         #結果是null

if __name__ == '__main__':
    json_type_diff()

3 csv 部分
主要使用csv包進行操作

from collections import namedtuple
import csv

def csv_read(path):
    """讀取csv文件"""
    with open(path,encoding='utf8') as f:             #path是文件地址
        reader = csv.reader(f)
        headers = next(reader)                        #獲取下一行信息
        for roe in headers:                           #可迭代對象
            print(f'編號{roe[0]}')                     #獲取roe第一個數據


def csc_read_by_nametuple(path):
    """讀取csc並用nametuple讀取映射名"""
    with open(path,encoding='utf8') as f:             #path是文件地址
        reader = csv.reader(f)
        headers = next(reader)
        Row = namedtuple('Roe',headers)  #Roe是框架名稱,headers是名稱
        for r in reader:
            row = Row(*r)
            print(f'{row.ProdactID}')    #獲取屬性的方法回去

def csc_read_by_nametuple(path):
    """讀取csc並用nametuple讀取映射名"""
    with open(path,encoding='utf8') as f:             #path是文件地址
        reader = csv.DictReader(f)  #獲取的爲字典表,鍵是第一行對應屬性
        for r in reader:
            print(r.ProdactID)

import csv
def csv_read():
    """"""
    with open('my_coures.csv','r',encoding='utf8',newline='') as f:
        reader = csv.DictReader(f)
        headers = next(reader)
        print(headers)
        for row in reader:
            print(row['編號'])
def cxv_write():
    """寫入csv文件"""
    headers = ['編號',"課程名稱","講師"]
    row = [
        (1,'python','Eason'),
        (2, 'C+', 'Eason'),
        (1, 'java', 'Eason')
    ]
    with open('my_coures.csv','w',encoding='utf8',newline='') as f:    #newline指定每行最後會不會換行
        write = csv.writer(f)                       #需要有寫入器
        write.writerow(headers)                     #寫入單行
        write.writerows(row)                        #寫入多行

def csv_write_dict():
    """dict格式寫入數據"""
    haeders = ['ID','Totle',"org",'url']
    row = [
    {'ID' : 1 ,"Totle" : 'python','org':'dwdw','url':'fdeo'},
    {'ID': 2, "Totle": 'python', 'org': 'dwdw', 'url': 'fdeo'},
    {'ID': 3, "Totle": 'python', 'org': 'dwdw', 'url': 'fdeo'}
    ]
    with open('My_course2.csv','w',encoding='utf8',newline='') as f:
        writer = csv.DictWriter(f,haeders)    #headers默認知道是表頭
        writer.writeheader()
        writer.writerows(row)

if __name__ == '__main__':
    csv_write_dict()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章