簡體   English   中英

將 json 文件編碼為字節

[英]Encode json files into bytes

我想將我的 json 文件編碼為字節。

我正在使用提供大量數據的傳感器。 現在我正在做的是獲取每個值,使用struct.pack()將其轉換為字節,堆疊數據並最終發送。

例如,如果我有:

{
    'Temperature':9999,
    'Ph': 8888,
    'WindDir': 7777,
    ...
}

我在想,可能存在一些 function、算法、NN 等可以直接將此 dict 轉換為二進制的,並且顯然是一個解碼器。

這個想法正在做類似struct.pack(myFile.json)的事情。

我認為這很有趣,因為如果可能的話,我不僅可以使用數字,也可以使用字符串,並將數據作為典型的 API 響應發送。

注意:它是以字節為單位的強制性工作。

只要您的dict內容僅限於內置 python 類型,您就可以毫不費力地使用pickle內置模塊。

創建文件如下:

import pickle
d = {"a":1,"b":"two","c":3.5}
with open("data.p","wb") as f:
    pickle.dump(d, f)

從該文件中讀取如下:

import pickle
with open("data.p","rb") as f:
    d = pickle.load(f)
print(d)  # {'a': 1, 'b': 'two', 'c': 3.5}

創建bytes如下:

import pickle
d = {"a":1,"b":"two","c":3.5}
databytes = pickle.dumps(d)
print(databytes)  # b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X\x03\x00\x00\x00twoq\x03X\x01\x00\x00\x00cq\x04G@\x0c\x00\x00\x00\x00\x00\x00u.'

讀取bytes如下:

import pickle
databytes = b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X\x03\x00\x00\x00twoq\x03X\x01\x00\x00\x00cq\x04G@\x0c\x00\x00\x00\x00\x00\x00u.'
d = pickle.loads(databytes)
print(d)  # {'a': 1, 'b': 'two', 'c': 3.5}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM