小編寫這篇文章的主要目的,是來(lái)給大家做一個(gè)解答,解答的內(nèi)容主要是python解析json數(shù)據(jù),涉及到的知識(shí)點(diǎn)還是比較的多的,那么,做完數(shù)據(jù)之后,怎么去保存csv文件呢?下面就給大家詳細(xì)解答下。
解析json數(shù)據(jù)并保存為csv文件
首先導(dǎo)入兩個(gè)包:
import json import pandas as pd
打開json文件并讀?。?/p>
with open('2.json',encoding='utf-8')as f: line=f.readline() d=json.loads(line) f.close()
讀取的json數(shù)據(jù)會(huì)以字典的形勢(shì)保存,按照字典的讀取方式獲取自己想要的數(shù)據(jù):
datas_x=[] datas_y=[] for dss in d: datas_x.append(float(dss["pos"]["x"])) datas_y.append(float(dss["pos"]["z"]))
將數(shù)據(jù)保存到列表中,然后創(chuàng)建pandas的DataFrame,DataFrame是由多種類型的列構(gòu)成的二維標(biāo)簽數(shù)據(jù)結(jié)構(gòu)。
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
最后將數(shù)據(jù)保存到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任意行文件轉(zhuǎn)為csv文件并保存 將json格式的前3000條數(shù)據(jù)存入csv
json格式類型:
{"address":"華山路31號(hào)","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":"屯溪區(qū)","geoInfo":{"distance":3669,"name":"市中心","type":1,"typeName":"市中心"},"grade":5,"hotelId":328618,"location":{"lat":"29.717982","lon":"118.299707"},"name":"黃山國(guó)際大酒店","payMode":[1,2],"price":362,"priceStatus":1,"promotion":[103],"saleType":1,"score":4.8,"star":5,"themes":[3,2,4],"totalComments":133} {"address":"金城鎮(zhèn)珠山82號(hào)","addressExtend":"","amenities":null,"brandName":null,"businessZoneList":[{"businessZoneId":2384,"businessZoneName":"金門機(jī)場(chǎng)","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號(hào)民宿","payMode":null,"price":null,"priceStatus":1,"promotion":null,"saleType":0,"score":null,"star":0,"themes":[],"totalComments":null}
json轉(zhuǎn)為csv
import csv import json import codecs ''' 將json文件格式轉(zhuǎn)為csv文件格式并保存。 ''' class Json_Csv(): #初始化方法,創(chuàng)建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:#截?cái)嗟谝恍挟?dāng)做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()#寫完就關(guān)閉 if __name__=='__main__': json_csv=Json_Csv() path='D:/hotels.txt' json_csv.trans(path)
到此為止,這篇文章給大家解答完畢,希望能給各位讀者帶來(lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128290.html
摘要:如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。運(yùn)行結(jié)果以上是讀取文件的方法。為了輸出中文,我們還需要指定一個(gè)參數(shù)為,另外規(guī)定文件輸出的編碼。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---30、解析庫(kù)的使用:PyQuery下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---32、數(shù)據(jù)存儲(chǔ):關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ):MySQL 我們用解析器解析出數(shù)據(jù)之后,接下來(lái)的一步就是對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)了,保存的形式可以...
摘要:文章目錄情景再現(xiàn)本文關(guān)鍵詞挑個(gè)軟柿子單頁(yè)爬取數(shù)據(jù)處理翻頁(yè)操作擼代碼主調(diào)度函數(shù)頁(yè)面抓取函數(shù)解析保存函數(shù)可視化顏色分布評(píng)價(jià)詞云圖源碼獲取方式情景再現(xiàn)今日天氣尚好,女友忽然欲買文胸,但不知何色更美,遂命吾剖析何色買者益眾,為點(diǎn)議,事后而獎(jiǎng)勵(lì)之。 ...
摘要:分布式爬蟲框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請(qǐng)求及響應(yīng)。 scrapy-redis分布式爬蟲框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會(huì)大眾參與社會(huì)生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個(gè)人都可以在網(wǎng)絡(luò)上...
摘要:前言新接觸爬蟲,經(jīng)過一段時(shí)間的實(shí)踐,寫了幾個(gè)簡(jiǎn)單爬蟲,爬取豆瓣電影的爬蟲例子網(wǎng)上有很多,但都很簡(jiǎn)單,大部分只介紹了請(qǐng)求頁(yè)面和解析部分,對(duì)于新手而言,我希望能夠有一個(gè)比較全面的實(shí)例。 0.前言 新接觸爬蟲,經(jīng)過一段時(shí)間的實(shí)踐,寫了幾個(gè)簡(jiǎn)單爬蟲,爬取豆瓣電影的爬蟲例子網(wǎng)上有很多,但都很簡(jiǎn)單,大部分只介紹了請(qǐng)求頁(yè)面和解析部分,對(duì)于新手而言,我希望能夠有一個(gè)比較全面的實(shí)例。所以找了很多實(shí)例和文...
閱讀 1070·2023-01-14 11:38
閱讀 1067·2023-01-14 11:04
閱讀 907·2023-01-14 10:48
閱讀 2387·2023-01-14 10:34
閱讀 1152·2023-01-14 10:24
閱讀 1029·2023-01-14 10:18
閱讀 657·2023-01-14 10:09
閱讀 737·2023-01-14 10:02