python 中使用json格式存储数据

前言

在人脸识别时,用户注册时需要输入一张人脸图片,为了加速图像识别的过程,我们往往会预先使用深度神经网络进行特征抽取,并保存抽取出的特征。这样在识别时,只需要采集一张用户的人脸图像,然后进行前向运算抽取特征,然后与预先抽取的特征进行比较即可。保存预训练的特征向量,可以使用json格式。json存储数据采用键值对的方式。我们可以使用用户的注册ID做键,特征向量作为值来进行存储。

Python中json文件的存储的读取

# -*- coding: UTF-8 -*-
'''Risk2S'''
import json
# 列表写入文件
# 测试list
risk_list =  [{'123':[1,2,3,4,5,6,7,8,9],'456':[3,4,6,3,6,7,3,7,3,3]},{'123':'111','456':222}]
# 将数据写入文件
file = open('jsondemo.json', 'w')
for i in risk_list:
    json_i = json.dumps(i)
    file.write(json_i+'\n')
file.close()

# 从文件中读取数据
risk_result = []
with open('jsondemo.json','r') as f:
    # 读取数据并分割。 最后一个为空,所以去除
    risk_new_list = f.read().split('\n')[:-1]
    for x in risk_new_list:
        json_x = json.loads(x)
        print(type(json_x))
        risk_result.append(json_x)
f.close()
print("原始数据是:", risk_list)
print("结果数据是:", risk_result)

输出结果:

<class 'dict'>
<class 'dict'>
原始数据是: [{'123': [1, 2, 3, 4, 5, 6, 7, 8, 9], '456': [3, 4, 6, 3, 6, 7, 3, 7, 3, 3]}, {'123': '111', '456': 222}]
结果数据是: [{'123': [1, 2, 3, 4, 5, 6, 7, 8, 9], '456': [3, 4, 6, 3, 6, 7, 3, 7, 3, 3]}, {'123': '111', '456': 222}]

可以看到读取出的json对象是字典类型,json可以和python的数据类型完美结合。
使用json格式保存人脸特征向量的形式如下:

{"id1":[feature1]}
{"id2":[feature2]}
......

参考文献

1.python 列表写入文本文件?

猜你喜欢

转载自blog.csdn.net/liuweiyuxiang/article/details/80560888