OpenMV與JSON編碼問題解析
JSON
如果想快速嘗試兩個單片機通信的。推薦使用串口傳輸json字符串!
JSON是一種簡潔高效的交換數(shù)據(jù)的格式。 它可以是這種簡單的:
"[[12,0],[10,12],[22,10],[99,11]]"
注:我通過這種簡單的字符串,把OpenMV中的色塊的x,y坐標(biāo)發(fā)送出去。
也可以是這種復(fù)雜的:
在python中表示多行字符串:
'''
{
"number":10,
"color" :[255,0,0],
"rate" :0.65
}
'''我使用這種結(jié)構(gòu)把OpenMV采集到的顏色信息發(fā)送到wifi中的服務(wù)器中。
甚至于,可以像這樣:
'''
{
"firstName": "John",
"lastName": "Smith",
"sex": "male",
"age": 25,
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber":
[
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}
'''注意:json的形式和Python很像,但是json是javascript的對象表達形式,和python的表達形式稍有不同。
ujson – JSON編碼與解碼
OpenMV內(nèi)置的json模塊允許Python對象和JSON數(shù)據(jù)格式之間的轉(zhuǎn)換
Python生成JSON
OpenMV有json的模塊,json.dumps(obj)和ujson.loads(str)可以很容的生成json字符串和解析json字符串。
import json
obj = [[12,0],[10,12],[22,10],[99,11]]
print(json.dumps(obj))
obj = {
"number":10,
"color" :[255,0,0],
"rate" :0.65
}
print(json.dumps(obj))然后把字符串通過串口發(fā)送出去,然后在另一端,把json字符串解析成對象/數(shù)組。然后進行接下來的邏輯操作。
會輸出:
'[[12, 0], [10, 12], [22, 10], [99, 11]]'
'{"color": [255, 0, 0], "number": 10, "rate": 0.65}'
常用函數(shù)
生成JSON字符串
ujson.dumps(obj)
返回表示為JSON字符串的 obj 。
解析JSON字符串
ujson.load(stream)
解析給定的 stream ,將其解釋為JSON字符串并將數(shù)據(jù)反序列化為Python對象。返回結(jié)果對象。
解析一直持續(xù)到到文件結(jié)束end-of-file。 如果 stream 中的數(shù)據(jù)格式不正確, ValueError 將被觸發(fā)。
解析JSON對象
ujson.loads(str)
解析JSON str 并返回一個對象。若該字符串未正確排列,則會引發(fā)示值誤差。
到此這篇關(guān)于OpenMV與JSON編碼的文章就介紹到這了,更多相關(guān)OpenMV與JSON編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python numpy 數(shù)組的向量化運算操作方法
這篇文章主要介紹了Python numpy數(shù)組的向量化運算操作方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
numpy使用fromstring創(chuàng)建矩陣的實例
今天小編就為大家分享一篇numpy使用fromstring創(chuàng)建矩陣的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
pytorch實現(xiàn)CNN卷積神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細介紹了pytorch實現(xiàn)CNN卷積神經(jīng)網(wǎng)絡(luò),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02

