This commit is contained in:
王庆刚
2025-03-13 15:36:29 +08:00
parent 0efe8892f3
commit 9b5b135fa3
21 changed files with 837 additions and 258 deletions

90
practice/json_to_data.py Normal file
View File

@ -0,0 +1,90 @@
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 18 15:44:33 2024
@author: ieemoo-zl003
"""
import json
import struct
import numpy as np
json_path = r"D:\DetectTracking\practice\resv11_test.json"
def write_binary_file(filename, datas):
with open(filename, 'wb') as f:
# 先写入数据中的key数量为C++读取提供便利)
key_count = len(datas)
f.write(struct.pack('I', key_count)) # 'I'代表无符号整型4字节
feats_32, feats_16 = [], []
for data in datas:
key = data['key']
feats = data['value']
key_bytes = key.encode('utf-8')
key_len = len(key)
length_byte = struct.pack('<B', key_len)
f.write(length_byte)
# f.write(struct.pack('Q', len(key_bytes)))
f.write(key_bytes)
value_count = len(feats)
f.write(struct.pack('I', (value_count * 256)))
# 遍历字典写入每个key及其对应的浮点数值列表
for values in feats:
# 写入每个浮点数值(保留小数点后六位)
feat16 = []
for value in values:
# 使用'f'格式单精度浮点4字节并四舍五入保留六位小数
value_half = np.float16(value)
# print(value_half.tobytes())
f.write(value_half.tobytes())
feat16.append(value_half)
feats_16.append(feat16)
feats_32.append(values)
feats16 = np.array(feats_16)
feats32 = np.array(feats_32)
print("Done")
def main_xh():
# 1. 打开JSON文件
with open(json_path, 'r', encoding='utf-8') as file:
# 2. 读取并解析JSON文件内容
data = json.load(file)
for flag, values in data.items():
# 逐个写入values中的每个值保留小数点后六位每个值占一行
write_binary_file(r"D:\DetectTracking\practice\data_.bin", values)
'''
with open('D://07Test/全实时/output.txt', 'w', encoding='utf-8') as txt_file:
for flag, values in data.items():
# 逐个写入values中的每个值保留小数点后六位每个值占一行
for value in values:
key = value['key']
feats = value['value']
# 写入key
txt_file.write(key)
txt_file.write("\n")
for feat in feats:
for number in feat:
# 使用格式化字符串保留六位小数,并写入文件
txt_file.write(f"{number:.6f} ")
txt_file.write("\n")
'''
def main_wang():
pass
if __name__ == "__main__":
main_xh()