总会有彩虹

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

python中的pickle更加具有通用性,支持多种各种存储。

json转成txt

 

import json  
  
json_filename = '/home/hjxu/AI_Challenger-master/code_xu/12.02/submit.json' #这是json文件存放的位置  
txt_filename = '/home/hjxu/AI_Challenger-master/code_xu/12.02/finnal.txt'   #这是保存txt文件的位置  
file=open(txt_filename,'w')  
with open(json_filename) as f:  
     pop_data = json.load(f)  
     for pop_dict in pop_data:  
         label_id = pop_dict['label_id']  
         image_id = pop_dict['image_id']  
         temp = str(image_id) + ' ' + str(label_id)  
         file.write(temp + '\n')           
     file.close()  

其中,json.load()这个函数,返回的就是一个字典

 

 

我们尝试一下写入json文件

temp_dict = {}  
result = []  
submit = './submit.json'  
##########这边可以写个循环加入字典########  
temp_dict['num'] = len(os.listdir(a)) #统计数目  
temp_dict['classification'] = num_name #类别  
temp_dict['prob'] = num_name_prob #概率  
result.append(temp_dict)  
##########这边可以写个循环加入字典#######3  
with open(submit, 'w') as f:  
    json.dump(result, f) 

 

 

使用pickle保存到文件

import pickle
 
dic={'name':'alvin','age':23,'sex':'male'}
 
print(type(dic))#<class 'dict'>
 
j=pickle.dumps(dic)
print(type(j))#<class 'bytes'>
 
 
f=open('序列化对象_pickle','wb')#注意是w是写入str,wb是写入bytes,j是'bytes'
f.write(j)  #-------------------等价于pickle.dump(dic,f)
 
f.close()
#-------------------------反序列化
import pickle
f=open('序列化对象_pickle','rb')
 
data=pickle.loads(f.read())#  等价于data=pickle.load(f)
 
 
print(data['age'])

 

posted on 2018-03-22 20:35  总会有彩虹  阅读(116)  评论(1)    收藏  举报