OpenMV與JSON編碼問(wèn)題解析
JSON
如果想快速嘗試兩個(gè)單片機(jī)通信的。推薦使用串口傳輸json字符串!
JSON是一種簡(jiǎn)潔高效的交換數(shù)據(jù)的格式。 它可以是這種簡(jiǎn)單的:
"[[12,0],[10,12],[22,10],[99,11]]"
注:我通過(guò)這種簡(jiǎn)單的字符串,把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的對(duì)象表達(dá)形式,和python的表達(dá)形式稍有不同。
ujson – JSON編碼與解碼
OpenMV內(nèi)置的json模塊允許Python對(duì)象和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))然后把字符串通過(guò)串口發(fā)送出去,然后在另一端,把json字符串解析成對(duì)象/數(shù)組。然后進(jìn)行接下來(lái)的邏輯操作。
會(huì)輸出:
'[[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對(duì)象。返回結(jié)果對(duì)象。
解析一直持續(xù)到到文件結(jié)束end-of-file。 如果 stream 中的數(shù)據(jù)格式不正確, ValueError 將被觸發(fā)。
解析JSON對(duì)象
ujson.loads(str)
解析JSON str 并返回一個(gè)對(duì)象。若該字符串未正確排列,則會(huì)引發(fā)示值誤差。
到此這篇關(guān)于OpenMV與JSON編碼的文章就介紹到這了,更多相關(guān)OpenMV與JSON編碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用protobuf序列化和反序列化的實(shí)現(xiàn)
protobuf是一種二進(jìn)制的序列化格式,相對(duì)于json來(lái)說(shuō)體積更小,傳輸更快,本文主要介紹了Python使用protobuf序列化和反序列化的實(shí)現(xiàn),感興趣的可以了解一下2021-05-05
利用Python?requests庫(kù)爬取高德地圖全國(guó)地鐵站點(diǎn)信息
requests?模塊是?python?基于?urllib,采用?Apache2?Licensed?開(kāi)源協(xié)議的?HTTP?庫(kù),它比?urllib?更加方便,可以節(jié)約我們大量的工作,完全滿足?HTTP?測(cè)試需求,這篇文章主要介紹了利用Python?requests庫(kù)爬取高德地圖全國(guó)地鐵站點(diǎn)信息,需要的朋友可以參考下2024-03-03
pycharm中使用request和Pytest進(jìn)行接口測(cè)試的方法
這篇文章主要介紹了pycharm中使用request和Pytest進(jìn)行接口測(cè)試的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Python實(shí)現(xiàn)推送百度鏈接的示例代碼
有時(shí)為了提高搜索效率,也讓搜索引擎更容易發(fā)現(xiàn)自己的文章,我們需要將文章鏈接推送到百度站長(zhǎng)平臺(tái),起到快速收錄的目的。本文將主要介紹如何通過(guò)Python實(shí)現(xiàn)這一功能,需要的可以參考一下2021-12-12
python 接口測(cè)試response返回?cái)?shù)據(jù)對(duì)比的方法
本篇文章主要介紹了python 接口測(cè)試response返回?cái)?shù)據(jù)對(duì)比的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
python?包之?APScheduler?定時(shí)任務(wù)
這篇文章主要介紹了python?包之?APScheduler?定時(shí)任務(wù),文章基于python的相關(guān)資料展開(kāi)主題內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
深入理解Python內(nèi)置函數(shù)map filter reduce及與列表推導(dǎo)式對(duì)比
這篇文章主要為大家介紹了Python內(nèi)置函數(shù)map filter reduce及與列表推導(dǎo)式對(duì)比方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06

