小編寫這篇文章的主要目的,是來給大家做一個解答,解答的內容主要是python解析json數據,涉及到的知識點還是比較的多的,那么,做完數據之后,怎么去保存csv文件呢?下面就給大家詳細解答下。
解析json數據并保存為csv文件
首先導入兩個包:
import json import pandas as pd
打開json文件并讀取:
with open('2.json',encoding='utf-8')as f: line=f.readline() d=json.loads(line) f.close()
讀取的json數據會以字典的形勢保存,按照字典的讀取方式獲取自己想要的數據:
datas_x=[] datas_y=[] for dss in d: datas_x.append(float(dss["pos"]["x"])) datas_y.append(float(dss["pos"]["z"]))
將數據保存到列表中,然后創建pandas的DataFrame,DataFrame是由多種類型的列構成的二維標簽數據結構。
path_x=pd.Series(datas_x) path_y=pd.Series(datas_y) path_df=pd.DataFrame() path_df['pathx']=path_x path_df['pathy']=path_y
最后將數據保存到csv中。
filepath="E:pythonpython2021202104409path_data.csv" path_df.to_csv(filepath,index=False,header=False)
完整代碼
import json import pandas as pd filepath="E:pythonpython2021202104409path_data.csv" with open('2.json',encoding='utf-8')as f: line=f.readline() d=json.loads(line) f.close() datas_x=[] datas_y=[] for dss in d: datas_x.append(float(dss["pos"]["x"])) datas_y.append(float(dss["pos"]["z"])) path_x=pd.Series(datas_x) path_y=pd.Series(datas_y) path_df=pd.DataFrame() path_df['pathx']=path_x path_df['pathy']=path_y path_df.to_csv(filepath,index=False,header=False) 將json任意行文件轉為csv文件并保存 將json格式的前3000條數據存入csv
json格式類型:
{"address":"華山路31號","addressExtend":"屯溪老街","amenities":[1,2,3,5,10,12],"brandName":null,"businessZoneList":null,"cityCode":1004,"cityName":"黃山","coverImageUrl":"https://img20.360buyimg.com/hotel/jfs/t16351/270/1836534312/106914/9b443bc4/5a68e68aN23bfaeda.jpg","districtName":"屯溪區","geoInfo":{"distance":3669,"name":"市中心","type":1,"typeName":"市中心"},"grade":5,"hotelId":328618,"location":{"lat":"29.717982","lon":"118.299707"},"name":"黃山國際大酒店","payMode":[1,2],"price":362,"priceStatus":1,"promotion":[103],"saleType":1,"score":4.8,"star":5,"themes":[3,2,4],"totalComments":133} {"address":"金城鎮珠山82號","addressExtend":"","amenities":null,"brandName":null,"businessZoneList":[{"businessZoneId":2384,"businessZoneName":"金門機場","poiType":null}],"cityCode":1174,"cityName":"泉州","coverImageUrl":null,"districtName":null,"geoInfo":{"distance":63229,"name":"市中心","type":1,"typeName":"市中心"},"grade":2,"hotelId":763319,"location":{"lat":"24.396442","lon":"118.314335"},"name":"金門珠山82號民宿","payMode":null,"price":null,"priceStatus":1,"promotion":null,"saleType":0,"score":null,"star":0,"themes":[],"totalComments":null}
json轉為csv
import csv import json import codecs ''' 將json文件格式轉為csv文件格式并保存。 ''' class Json_Csv(): #初始化方法,創建csv文件。 def __init__(self): self.save_csv=open('D:/hotels_out.csv','w',encoding='utf-8',newline='') self.write_csv=csv.writer(self.save_csv,delimiter=',')#以,為分隔符 def trans(self,filename): with codecs.open(filename,'r',encoding='utf-8')as f: read=f.readlines() flag=True for index,info in enumerate(read): data=json.loads(info) if index<3000:#讀取json文件的前3000行寫入csv文件。要是想寫入全部,則去掉判斷。 if flag:#截斷第一行當做head keys=list(data.keys())#將得到的keys用列表的形式封裝好,才能寫入csv self.write_csv.writerow(keys) flag=False#釋放 value=list(data.values())#寫入values,也要是列表形式 self.write_csv.writerow(value) self.save_csv.close()#寫完就關閉 if __name__=='__main__': json_csv=Json_Csv() path='D:/hotels.txt' json_csv.trans(path)
到此為止,這篇文章給大家解答完畢,希望能給各位讀者帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128290.html
摘要:如果該文件已存在,文件指針將會放在文件的結尾。運行結果以上是讀取文件的方法。為了輸出中文,我們還需要指定一個參數為,另外規定文件輸出的編碼。 上一篇文章:Python3網絡爬蟲實戰---30、解析庫的使用:PyQuery下一篇文章:Python3網絡爬蟲實戰---32、數據存儲:關系型數據庫存儲:MySQL 我們用解析器解析出數據之后,接下來的一步就是對數據進行存儲了,保存的形式可以...
摘要:文章目錄情景再現本文關鍵詞挑個軟柿子單頁爬取數據處理翻頁操作擼代碼主調度函數頁面抓取函數解析保存函數可視化顏色分布評價詞云圖源碼獲取方式情景再現今日天氣尚好,女友忽然欲買文胸,但不知何色更美,遂命吾剖析何色買者益眾,為點議,事后而獎勵之。 ...
摘要:分布式爬蟲框架詳解隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應。 scrapy-redis分布式爬蟲框架詳解 隨著互聯網技術的發展與應用的普及,網絡作為信息的載體,已經成為社會大眾參與社會生活的一種重要信息渠道。由于互聯網是開放的,每個人都可以在網絡上...
摘要:前言新接觸爬蟲,經過一段時間的實踐,寫了幾個簡單爬蟲,爬取豆瓣電影的爬蟲例子網上有很多,但都很簡單,大部分只介紹了請求頁面和解析部分,對于新手而言,我希望能夠有一個比較全面的實例。 0.前言 新接觸爬蟲,經過一段時間的實踐,寫了幾個簡單爬蟲,爬取豆瓣電影的爬蟲例子網上有很多,但都很簡單,大部分只介紹了請求頁面和解析部分,對于新手而言,我希望能夠有一個比較全面的實例。所以找了很多實例和文...
閱讀 919·2023-01-14 11:38
閱讀 891·2023-01-14 11:04
閱讀 750·2023-01-14 10:48
閱讀 2039·2023-01-14 10:34
閱讀 956·2023-01-14 10:24
閱讀 835·2023-01-14 10:18
閱讀 506·2023-01-14 10:09
閱讀 583·2023-01-14 10:02