要将Python3 dict或ndarray存储成Json格式,并且保留其原始数据精度,可以使用json模块中的dump方法。下面是完整攻略:
1. 导入模块
首先需要导入模块:
import json
import numpy as np
2. 存储dict为json
可以使用如下代码将一个Python3的dict存储成Json文件:
dict_data = {'a': 1.234567890123456789, 'b': 2.345678901234567890, 'c': 3.456789012345678901}
with open('data.json', 'w') as json_file:
json.dump(dict_data, json_file, indent=4, ensure_ascii=False)
其中,ensure_ascii=False
可以保证存储的Json文件中可以包含非ASCII字符,indent=4
可以让存储后的Json文件以缩进格式显示。
3. 存储ndarray为json
如果要存储一个包含ndarray的dict为Json文件,可以使用如下代码:
arr = np.array([1.234567890123456789, 2.345678901234567890, 3.456789012345678901])
dict_data = {'a': arr}
with open('data.json', 'w') as json_file:
json.dump(dict_data, json_file, indent=4, ensure_ascii=False, default=lambda obj: obj.tolist())
需要注意的是,ndarray类型不能直接存储为Json,所以需要在'default'参数中使用lambda函数将ndarray类型转为list类型再进行存储。
示例1:存储一个包含多个ndarray的dict为json
dict_data = {'a': np.array([1.1,2.2,3.3]), 'b': np.array([4.4,5.5,6.6])}
with open('data.json', 'w') as json_file:
json.dump(dict_data, json_file, indent=4, ensure_ascii=False, default=lambda obj: obj.tolist())
这个例子中,我们创建了包含两个ndarray的dict,然后将其存储为Json文件,可以在文件中看到保留了ndarray的精度。
示例2:读取存储的json文件并转化为ndarray
with open('data.json', 'r') as json_file:
data = json.load(json_file)
print(np.array(data['a']))
这个例子展示了如何读取存储的Json文件,并且将其中的ndarray转换为原始类型。可以看到输出结果是一个包含原始精度的ndarray。
以上就是将Python3 dict或ndarray存储成Json并保留原始精度的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3 dict ndarray 存成json,并保留原数据精度的实例 - Python技术站