1. 程式人生 > >【學習】json 檔案和 csv檔案(讀寫)

【學習】json 檔案和 csv檔案(讀寫)

1,json

json.dumps() ---將字典轉成JSON格式

import json

zhidian_json=[{
    'name':'jing1',
    'age':'21',
},
{
    'name':'jing2',
    'age':'22',
}]
#json.dumps()--資料轉成字串
json_str =json.dumps(zhidian_json)
print(json_str)

>>[{"name": "jing1", "age": "21"}, {"name": "jing2", "age": "22"}]

 -----------------------------

#把字串儲存檔案中,personyj2.json=檔名稱,
with open('personyj2.json','w',encoding='utf-8')as fp:
    # fp.write(json_str)     #資料寫入檔案中
    json.dump(zhidian_json,fp)    #用json寫入檔案中,ensure_ascii=False,關閉它預設的形式

       json.loads()解碼python json格式
    
       json.load()載入python json格式檔案

 

2,csv檔案

讀取csv:

        方法一(根據座標去獲取---csv.reader( ))

#讀取檔案,根據座標去獲取
def duqu():
    with open('stock.csv','r') as fp:
    #讀取檔案,  reader=迭代器
    reader =csv.reader(fp)
    #從第二行開始
    next(reader)

    for x in reader:
        #print(x) #獲取全部
        #獲取單個
        name=x[2]
        id=x[1]
        #可以對資料進行操作
        print({'name':name,'id':id})

          方法二(根據標題去獲取--csv.DictReader( ))

 #根據標題去獲取
def duqu2():
    with open('stock.csv','r') as fp:
        #csv.DictReader(fp)不貴包含標題,返回字典
    reader=csv.DictReader(fp)
    for x in reader():
        value ={"name":x['name'],"id":x['id']}
        print(value)

>>name:jing,id:1


寫入CVS檔案:

方法一:(正常儲存 )

       writer.writerow()    :一次性可以寫入多行資料

        newline=" "    :把空內容去除掉

#寫入csv.writer(fp)--寫入資料

headex=['username','age','height']
values=[
    ('jing1',10,170),
    ('jing2',11,180),
    ('jing3',12,190),
]
with open('class.csv','w',encoding='utf-8',newline="") as fp:
    writer = csv.writer(fp)
    writer.writerow(headex)   #writer.writerow()----一次性可以寫入多行資料
    writer.writerows(values)

》》》
username,age,height
jing1,10,170
jing2,11,180
jing3,12,190

方法二:(爬取內容字典儲存 )

                    csv.DictWriter(fp,headex)   :字典方式儲存

headex=['username','age','height']
values=[
    {'username':'jinga1','age':10,'height':170},
    {'username':'jinga2','age':10,'height':170},
    {'username':'jinga3','age':10,'height':170}
]
with open('class.csv','w',encoding='utf-8',newline="") as fp:
    writer = csv.DictWriter(fp,headex) #字典方式儲存
    writer.writeheader()#寫入表頭資料的時候,需要呼叫writeheader方法
    writer.writerow(values)