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)