json數據的存儲與讀取


1.  json數據格式:

data = [ {"key1":"xxx","item":"ddd"}, {"key2":"xxxxx","item":"sss"} ]

2. 將data寫入文件中保存

datas = json.dumps(data,ensure_ascii=False,indent=4) #ensure_ascii:使用中文保存,縮進為4個空格
 with open('/report/fake/mock.json','w+') as f: 
 f.write(datas)

3.讀取json文件

 with open('/report/fake/mock.json','r') as f: datas = json.load(f) print datas

 4.使用python的json模塊序列化時間或者其他不支持的類型時會拋異常,需要對json做下擴展,讓它可以支持datetime類型

class ComplexEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj, date): return obj.strftime('%Y-%m-%d') else: return json.JSONEncoder.default(self, obj)

調用json.dumps時需要指定cls參數為ComplexEncoder
json.dumps({'now':now}, cls=ComplexEncoder)

5.將字符串類型的列表(或字典)轉成列表(或字典),需要轉換成unicode,再轉換成list(或dict)

            config_datas = data.get('Value', '')
            # 此時config_datas是字符串類型的列表,需要轉換成unicode,再轉換成list
            config_datas = config_datas.decode('unicode-escape')
            config_datas = json.loads(config_datas)
            

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM