欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python全面解析json數(shù)據(jù)并保存為csv文件

 更新時(shí)間:2022年07月06日 14:52:25   作者:Hello AI!  
這篇文章主要介紹了Python全面解析json數(shù)據(jù)并保存為csv文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

解析json數(shù)據(jù)并保存為csv文件

首先導(dǎo)入兩個(gè)包:

import json
import pandas as pd

打開(kāi)json 文件并讀取:

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是由多種類(lèi)型的列構(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:\\python\\python\\2021\\202104\\0409\\path_data.csv"
path_df.to_csv(filepath, index=False, header=False)

完整代碼

import json
import pandas as pd
filepath = "E:\\python\\python\\2021\\202104\\0409\\path_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格式類(lèi)型:

{"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": "金門(mén)機(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": "金門(mén)珠山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行寫(xiě)入csv文件 。要是想寫(xiě)入全部,則去掉判斷。
                    if flag: #截?cái)嗟谝恍挟?dāng)做head
                        keys=list(data.keys())  #將得到的keys用列表的形式封裝好,才能寫(xiě)入csv
                        self.write_csv.writerow(keys) 
                        flag=False  #釋放
                    value=list(data.values())   #寫(xiě)入values,也要是列表形式
                    self.write_csv.writerow(value)
            self.save_csv.close()  #寫(xiě)完就關(guān)閉
if __name__=='__main__':
    json_csv=Json_Csv()
    path='D:/hotels.txt'
    json_csv.trans(path)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

最新評(píng)論