亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)讀取JSON并導(dǎo)出為表格數(shù)據(jù)格式

 更新時(shí)間:2024年03月22日 11:50:10   作者:瘋狂學(xué)習(xí)GIS  
這篇文章主要為大家詳細(xì)介紹了如何基于Python語言,讀取JSON格式的數(shù)據(jù),并將提取的指定內(nèi)容保存到表格文件中,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

本文介紹基于Python語言,讀取JSON格式的數(shù)據(jù),提取其中的指定內(nèi)容,并將提取到的數(shù)據(jù)保存到.csv格式或.xlsx格式的表格文件中的方法。

JSON格式的數(shù)據(jù)在數(shù)據(jù)信息交換過程中經(jīng)常使用,但是相對(duì)而言并不直觀;因此,有時(shí)我們希望將JSON格式的數(shù)據(jù)轉(zhuǎn)換為Excel表格文件數(shù)據(jù);這里就介紹一下基于Python語言,將JSON數(shù)據(jù)轉(zhuǎn)換為.csv格式與.xlsx格式數(shù)據(jù)的方法。

首先,來看一下我們的需求。我們現(xiàn)在基于Postman軟件,獲得了某一個(gè)網(wǎng)站中,以JSON格式記錄的大量數(shù)據(jù),其中部分?jǐn)?shù)據(jù)如下圖所示(這里是大量數(shù)據(jù)樣本中的1條樣本)。這里關(guān)于Postman獲取網(wǎng)站數(shù)據(jù)的方法,大家如果有需要,可以參考文章# 用Postman模擬瀏覽器的HTTP請(qǐng)求并獲取返回?cái)?shù)據(jù)。

我們現(xiàn)在希望實(shí)現(xiàn)的是,將上述JSON數(shù)據(jù)中的文字部分(也就是有價(jià)值的信息部分)提取出來,并保存在一個(gè)Excel表格文件中;其中,不同的就是不同的信息屬性,不同的就是不同的樣本。

明確了需求,我們就可以開始撰寫代碼。這里需要注意,在本文代碼中需要用到Pythonjson庫,關(guān)于這一個(gè)庫的配置,大家可以參考文章# Anaconda安裝Python下屬json模塊的方法。

首先,介紹將JSON格式數(shù)據(jù)轉(zhuǎn)換為.csv文件數(shù)據(jù)的代碼,具體如下。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 29 10:22:23 2023

@author: fkxxgis
"""

import json
import csv

with open('/Users/didi/Documents/response.json', 'r') as f:
    data = json.load(f)

with open('/Users/didi/Documents/Data_All.csv', 'w', newline='', encoding='utf-8') as csvfile:
    csvwriter = csv.writer(csvfile)
    
    header = ["xkzh", "qymc", "gmpZsh", "cym", "shren", "shrq"]
    csvwriter.writerow(header)
    
    for row in data['rows']:
        xkzh = row['xkzh']
        qymc = row['qymc']
        gmpZsh = row['gmpZsh']
        cym = row['cym']
        shren = row['shren']
        shrq = row['shrq']
        
        csvwriter.writerow([xkzh, qymc, gmpZsh, cym, shren, shrq])

首先需要說明,上述代碼在執(zhí)行后,我打開新建的.csv格式文件,會(huì)出現(xiàn)中文字符亂碼的情況,如下圖所示。

但是用本文接下來的導(dǎo)出為.xlsx格式文件的代碼就不會(huì)有這個(gè)問題,所以我當(dāng)時(shí)沒有進(jìn)一步研究亂碼出現(xiàn)的原因,就直接用了后續(xù)的代碼了。如果大家感興趣,可以對(duì)上述代碼加以進(jìn)一步研究。

上述代碼的具體含義如下。首先,我們通過with open('/Users/didi/Documents/response.json', 'r') as f:,打開名為response.json的文件(也就是存儲(chǔ)了我們JSON格式數(shù)據(jù)的文件),并將其賦值給變量f;這里的'r'表示以只讀模式打開文件。隨后,代碼data = json.load(f)使用json.load()函數(shù)加載JSON文件中的數(shù)據(jù),并將其存儲(chǔ)在變量data中。

接下來,打開名為Data_All.csv的文件,并將其賦值給變量csvfile。'w'表示以寫入模式打開文件。newline=''encoding='utf-8'用于設(shè)置寫入.csv文件時(shí)的換行和編碼方式。隨后,csvwriter = csv.writer(csvfile)表示創(chuàng)建一個(gè).csv寫入器,將數(shù)據(jù)寫入csvfile文件。

其次,我們即可定義.csv文件的表頭(列名),以列表形式存儲(chǔ)在header變量中;隨后,通過csvwriter.writerow(header)將表頭寫入.csv文件。

緊接著,對(duì)于data中的每一行數(shù)據(jù),執(zhí)行以下操作——xkzh = row['xkzh']就表示從當(dāng)前行的字典中提取鍵為xkzh的值,并將其賦值給變量xkzh;接下來的其他幾行也是這個(gè)意思。最后,我們將提取的數(shù)據(jù)以列表的形式寫入.csv文件的一行。

接下來,我們介紹將JSON格式數(shù)據(jù)轉(zhuǎn)換為.xlsx文件數(shù)據(jù)的代碼,具體如下。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 29 10:42:26 2023

@author: fkxxgis
"""

import json
from openpyxl import Workbook

with open('/Users/didi/Documents/Veterinary/response_2.json', 'r') as f:
    data = json.load(f)

wb = Workbook()
ws = wb.active

header = ["qymc", "tym", "gg", "spm", "pzwh", "zxbz", "pzrq", "yxq", "sxyy", "bgqk"]
ws.append(header)

for row in data['rows']:
    qymc = row['qymc']
    tym = row['tym']
    gg = row['gg']
    spm = row['spm']
    pzwh = row['pzwh']
    zxbz = row['zxbz']
    pzrq = row['pzrq']
    yxq = row['yxq']
    sxyy = row['sxyy']
    bgqk = row['bgqk']
    
    ws.append([qymc, tym, gg, spm, pzwh, zxbz, pzrq, yxq, sxyy, bgqk])

wb.save('/Users/didi/Documents/Veterinary/Result_2.xlsx')

上述代碼的含義也比較簡單。

首先,我們打開名為response_2.json的文件,并將其賦值給變量f。'r'表示以只讀模式打開文件。隨后的data = json.load(f)表示使用json.load()函數(shù)加載JSON文件中的數(shù)據(jù),并將其存儲(chǔ)在變量data中。

接下來,創(chuàng)建一個(gè)新的Excel工作簿,將其賦值給變量wb;隨后,獲取工作簿的活動(dòng)工作表,并將其賦值給變量ws。

緊接著,我們定義Excel文件的表頭(列名),以列表形式存儲(chǔ)在header變量中,并將表頭寫入Excel文件的第一行。隨后,對(duì)于data中的每一行數(shù)據(jù)(假設(shè)每一行都是一個(gè)字典),執(zhí)行以下操作——從當(dāng)前行的字典中提取特定字段的值,并將它們分別賦值給對(duì)應(yīng)的變量。接下來,我們將提取的數(shù)據(jù)以列表的形式寫入Excel文件的一行。

最后,即可將Excel工作簿保存為名為Result_2.xlsx的文件。

運(yùn)行上述代碼,我們即可在Result_2.xlsx文件中看到提取到的數(shù)據(jù),其中每一行就是一個(gè)樣本,每一列表示一種屬性,且沒有出現(xiàn)亂碼的情況。如下圖所示。

至此,大功告成。

到此這篇關(guān)于Python實(shí)現(xiàn)讀取JSON并導(dǎo)出為表格數(shù)據(jù)格式的文章就介紹到這了,更多相關(guān)Python讀取JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django解決無法從request.POST中獲取URL傳進(jìn)來的參數(shù)

    Django解決無法從request.POST中獲取URL傳進(jìn)來的參數(shù)

    這篇文章主要介紹了Django解決無法從request.POST中獲取URL傳進(jìn)來的參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 基于Python實(shí)現(xiàn)電影售票系統(tǒng)

    基于Python實(shí)現(xiàn)電影售票系統(tǒng)

    這篇文章主要介紹了通過Python實(shí)現(xiàn)一個(gè)簡單的電影售票系統(tǒng),文中的示例代碼對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • Python實(shí)現(xiàn)提取給定網(wǎng)頁內(nèi)的所有鏈接

    Python實(shí)現(xiàn)提取給定網(wǎng)頁內(nèi)的所有鏈接

    這篇文章主要和大家分享一個(gè)實(shí)用的Python腳本,可以實(shí)現(xiàn)從給定的網(wǎng)頁中檢索所有鏈接,并將其保存為txt文件,需要的小伙伴可以收藏一下
    2023-05-05
  • Python接口傳輸url與flask數(shù)據(jù)詳解

    Python接口傳輸url與flask數(shù)據(jù)詳解

    這篇文章主要介紹了Python通過接口傳輸url與flask數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 利用python實(shí)現(xiàn)漢諾塔游戲

    利用python實(shí)現(xiàn)漢諾塔游戲

    這篇文章主要為大家詳細(xì)介紹了利用python實(shí)現(xiàn)漢諾塔游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Python編程實(shí)現(xiàn)蟻群算法詳解

    Python編程實(shí)現(xiàn)蟻群算法詳解

    這篇文章主要介紹了Python編程實(shí)現(xiàn)蟻群算法詳解,涉及螞蟻算法的簡介,主要原理及公式,以及Python中的實(shí)現(xiàn)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • python pandas 時(shí)間日期的處理實(shí)現(xiàn)

    python pandas 時(shí)間日期的處理實(shí)現(xiàn)

    這篇文章主要介紹了python pandas 時(shí)間日期的處理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中協(xié)程間通信的方式小結(jié)

    Python中協(xié)程間通信的方式小結(jié)

    Python中協(xié)程間的通信方式包括asyncio.Queue、asyncio.Event、asyncio.Condition、asyncio.Semaphore、asyncio.Streams和asyncio.Future,感興趣的可以了解一下
    2025-01-01
  • Python利用臨時(shí)文件實(shí)現(xiàn)數(shù)據(jù)的保存

    Python利用臨時(shí)文件實(shí)現(xiàn)數(shù)據(jù)的保存

    tempfile模塊專門用于創(chuàng)建臨時(shí)文件和臨時(shí)目錄,它既可以在?UNIX?平臺(tái)上運(yùn)行良好,也可以在?Windows?平臺(tái)上運(yùn)行良好。本文將利用tempfile模塊創(chuàng)建臨時(shí)文件來保存數(shù)據(jù),感興趣的可以了解一下
    2022-07-07
  • Python實(shí)戰(zhàn)之實(shí)現(xiàn)簡易的學(xué)生選課系統(tǒng)

    Python實(shí)戰(zhàn)之實(shí)現(xiàn)簡易的學(xué)生選課系統(tǒng)

    又到了小伙伴們最喜歡的python實(shí)戰(zhàn)環(huán)節(jié),文中對(duì)實(shí)現(xiàn)簡易的學(xué)生選課系統(tǒng)作了非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05

最新評(píng)論