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

python如何讀取和存儲dict()與.json格式文件

 更新時間:2022年06月24日 16:38:28   作者:勤奮的清風(fēng)  
這篇文章主要介紹了python如何讀取和存儲dict()與.json格式文件,具有很好的參考價值,希望對大家有所幫助。

讀取和存儲dict()與.json格式文件

讀取.json格式文件并將數(shù)據(jù)保存到字典中

數(shù)據(jù)文件:hg.json

{"商家名稱": "珍滋味港式粥火鍋(工體店)", "評分": 27.0, "地址": "火鍋工人體育場東路丙2號中國紅街3號樓2層里", "人均消費": 174, "評論數(shù)量": 2307}{"商家名稱": "井格老灶火鍋(望京新世界店)", "評分": 26.2, "地址": "火鍋望京廣順南大街路16號", "人均消費": 105, "評論數(shù)量": 1387}{"商家名稱": "臉譜港式火鍋(酒仙橋麗都店)", "評分": 24.5, "地址": "火鍋芳園西路6號一層", "人均消費": 218, "評論數(shù)量": 39}

針對上述數(shù)據(jù),可以采用如下方法將json編碼的字符串轉(zhuǎn)換為python數(shù)據(jù)結(jié)構(gòu)dict:

# -*- coding: utf-8 -*-
import json
import codecs

data = []
with codecs.open("hg.json", "r", "utf-8") as f:
? ? for line in f:
? ? ? ? dic = json.loads(line)
? ? ? ? data.append(dic)
? ? ? ? print(json.dumps(dic, indent=4, ensure_ascii=False, encoding='utf-8'))

保存字典數(shù)據(jù)到.json文件中

dic = {"商家名稱": "井格老灶火鍋(望京新世界店)", "評分": 26.2, "地址": "火鍋望京廣順南大街路16號", "人均消費": 105, "評論數(shù)量": 1387}
with codecs.open('hg.json','a', 'utf-8') as outf:
? ? json.dump(dic, outf, ensure_ascii=False)
? ? outf.write('\n')

在命令行中輸出字典時的亂碼問題

如果字典數(shù)據(jù)中有中文的話,print dic是無法正常顯示中文的,可通過下面的方法格式化輸出字典數(shù)據(jù):

dic = {"北京": [446, 208.7, 110000], "天津": [454.2, 219.8, 120000], "上海": [498.6, 319.7, 310000]}
print(json.dumps(dic, ensure_ascii=False, encoding='utf-8', indent=4))

將字符串?dāng)?shù)據(jù)轉(zhuǎn)化為字典數(shù)據(jù)

兩種轉(zhuǎn)化方法

user = "{'name' : 'LiHua', 'sex' : 'male', 'age': 18}"
dic1 = eval(user)
exec("dic2="+user)

補充

一般來說,json解碼時會從所提供的數(shù)據(jù)中創(chuàng)建出字典或者列表,如果想創(chuàng)建其它類型的對象,可以為json.loads()方法提供object_pairs_hook或者object_hook參數(shù)。下面的示例展示了我們應(yīng)該如何將json數(shù)據(jù)解碼為OrderedDict(有序字典),這樣可以保持?jǐn)?shù)據(jù)的順序不變。

>>> s = '{"name":"ACME", "SHARES":50, "PRICE":490}'
>>> from collections import OrderedDict
>>> data = json.load(s, object_pairs_hook=OrderedDict)
>>> data
OrderedDict([('name', 'ACME'), ('shares', 50), ('price', 490)]
>>>

將dict數(shù)據(jù)寫入json文件中

現(xiàn)在獲取一個醫(yī)藥網(wǎng)站的數(shù)據(jù),最終轉(zhuǎn)換成dict類型,需要將數(shù)據(jù)寫入JSON文件中,以方便后面數(shù)據(jù)的使用

with open('./medical.json', 'w',encoding='utf-8') as fp:
   json.dump(data, fp)

但得到的最終數(shù)據(jù)卻是這樣:

本來應(yīng)該是正常的中文字符串,卻是ASCII編碼,因此在dump方法中添加一個ensure_ascii參數(shù),原因是dump()方法將字典轉(zhuǎn)化為字符串,會默認(rèn)將其中unicode碼以ascii編碼的方式輸入到字符串中

with open('./medical.json', 'w',encoding='utf-8') as fp:
   json.dump(data, fp,ensure_ascii=False)

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

相關(guān)文章

  • Numpy數(shù)組轉(zhuǎn)置的兩種實現(xiàn)方法

    Numpy數(shù)組轉(zhuǎn)置的兩種實現(xiàn)方法

    下面小編就為大家分享一篇Numpy數(shù)組轉(zhuǎn)置的兩種實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Pytorch模型微調(diào)fine-tune詳解

    Pytorch模型微調(diào)fine-tune詳解

    微調(diào)(fine-tune)通過使用在大數(shù)據(jù)上得到的預(yù)訓(xùn)練好的模型來初始化自己的模型權(quán)重,從而提升精度,這篇文章主要介紹了Pytorch模型微調(diào)(fine-tune),需要的朋友可以參考下
    2023-01-01
  • 在Python中調(diào)用ggplot的三種方法

    在Python中調(diào)用ggplot的三種方法

    這篇文章主要介紹了在Python中調(diào)用ggplot的三種方法,ggplot作為一個圖形庫,經(jīng)常被用來制作數(shù)據(jù)的可視化視圖,需要的朋友可以參考下
    2015-04-04
  • 深入理解Python中字典的鍵的使用

    深入理解Python中字典的鍵的使用

    這篇文章主要介紹了深入理解Python中字典的鍵的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-08-08
  • python?matplotlib繪圖過程中設(shè)置線條顏色實戰(zhàn)舉例

    python?matplotlib繪圖過程中設(shè)置線條顏色實戰(zhàn)舉例

    Matplotlib是一個用于數(shù)據(jù)可視化和創(chuàng)建交互式圖表的Python庫,下面這篇文章主要給大家介紹了關(guān)于python?matplotlib繪圖過程中設(shè)置線條顏色的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法

    Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法

    本文主要介紹了Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法,DataFrame數(shù)據(jù)合并主要使用merge()方法和concat()方法,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • python redis存入字典序列化存儲教程

    python redis存入字典序列化存儲教程

    這篇文章主要介紹了python redis存入字典序列化存儲教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Perl中著名的Schwartzian轉(zhuǎn)換問題解決實現(xiàn)

    Perl中著名的Schwartzian轉(zhuǎn)換問題解決實現(xiàn)

    這篇文章主要介紹了Perl中著名的Schwartzian轉(zhuǎn)換問題解決實現(xiàn),本文詳解講解了Schwartzian轉(zhuǎn)換涉及的排序問題,并同時給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • 舉例詳解Python中的split()函數(shù)的使用方法

    舉例詳解Python中的split()函數(shù)的使用方法

    這篇文章主要介紹了舉例詳解Python中的split()函數(shù)的使用方法,split()函數(shù)的使用是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,通常用于將字符串切片并轉(zhuǎn)換為列表,需要的朋友可以參考下
    2015-04-04
  • python中opencv圖像疊加、圖像融合、按位操作的具體實現(xiàn)

    python中opencv圖像疊加、圖像融合、按位操作的具體實現(xiàn)

    opencv圖像操作可以更好更快的方便我們處理圖片,本文主要介紹了圖像疊加、圖像融合、按位操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論