日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python中rapidjson參數(shù)校驗實現(xiàn)

瀏覽:159日期:2022-06-14 17:16:07
目錄前言rapidjson簡介和安裝rapidjson基本使用dumps() 方法skipkeysensure_asciisort_keysdump()方法Validator class前言

在使用Django框架開發(fā)前后端分離的項目時,通常需要對前端傳遞過來的參數(shù)進行校驗,校驗的方式有多種,可以使用drf進行校驗,也可以使用json進行校驗,本文介紹在Python中rapidjson的基本使用以及如何進行參數(shù)校驗。

rapidjson簡介和安裝

rapidjson是一個性能非常好的C++ JSON解析器和序列化庫,它被包裝成了Python3的擴展包,就是說在Python3中可以使用rapidjson進行數(shù)據(jù)的序列化和反序列化操作并且可以對參數(shù)進行校驗,非常方便好用。

rapidjson安裝命令:pip install python-rapidjson。

rapidjson基本使用

rapidjson和json模塊在基本使用方法上一致的,只不過rapidjson在某些參數(shù)方面和json模塊不兼容,這些參數(shù)并不常用,這里不做過多介紹,詳情可參照rapidjson官方文檔。基本使用介紹兩個序列化的方法dump/dumps,反序列化的load/loads使用json模塊的即可。

dumps & dump這兩個方法都是將Python實例對象序列化為JSON格式的字符串,用法和參數(shù)大致相同,dump方法比dumps方法多了一個必要的file_like參數(shù)。

dumps() 方法

該方法返回的結(jié)果是一個Python 字符串實例。參數(shù)非常多,這里只介紹經(jīng)常使用的三個參數(shù)。

rapidjson.dumps(obj, *, skipkeys=False, ensure_ascii=True, write_mode=WM_COMPACT, indent=4, default=None, sort_keys=False, number_mode=None, datetime_mode=None, uuid_mode=None, bytes_mode=BM_UTF8, iterable_mode=IM_ANY_ITERABLE, mapping_mode=MM_ANY_MAPPING, allow_nan=True)skipkeys

該參數(shù)表示是否跳過不可用的字典的key進行序列化,如果默認為False,如果修改為True字典的key如果不屬于基本數(shù)據(jù)類型(str int float bool None)之一就會跳過該key而不會拋出TypeError的異常。

import rapidjsonfrom pprint import pprintdic = { True: False, (0,): ’python’}res = rapidjson.dumps(dic)pprint(res) # TypeError: {True: False, (0,): ’python’} is not JSON serializableres = rapidjson.dumps(dic, skipkeys=True)pprint(res) # ’{}’ensure_ascii

該參數(shù)表示序列化的結(jié)果是否只包含ASCII字符,默認值是True,將Python實例序列化后所有的非ASCII碼的字符都會被轉(zhuǎn)義,如果將該參數(shù)的值修改為False,增會將字符原樣輸出。

dic = { ’name’: ’麗麗’, ’name1’: ’lili’}res = rapidjson.dumps(dic)pprint(res) # ’{'name':'u4E3Du4E3D','name1':'lili'}’res = rapidjson.dumps(dic, ensure_ascii=False)pprint(res) # ’{'name':'麗麗','name1':'lili'}’sort_keys

該參數(shù)表示序列化時是否將字典的key按照字母進行排序。默認是False,如果修改為True,字典序列化得到的結(jié)果就是按照字典的key的字母順序進行排序的。

dic = { ’name’: ’麗麗’, ’age’: ’10’}res = rapidjson.dumps(dic, ensure_ascii=False, sort_keys=True)pprint(res) # ’{'age':'10','name':'麗麗'}’dump()方法

該方法和dumps方法非常類似,不同的是該方法需要一個額外的必須的參數(shù) - 一個file-like的可寫流式對象,比如文件對象,將第一個參數(shù)obj進行序列化寫入可寫的流式對象中。

rapidjson.dump(obj, stream, *, skipkeys=False, ensure_ascii=True, write_mode=WM_COMPACT, indent=4, default=None, sort_keys=False, number_mode=None, datetime_mode=None, uuid_mode=None, bytes_mode=BM_UTF8, iterable_mode=IM_ANY_ITERABLE, mapping_mode=MM_ANY_MAPPING, chunk_size=65536, allow_nan=True)

下面是該方法的基本使用:

# 寫入文件dic = { ’name’: ’麗麗’, ’age’: ’10’}f = open(’1.py’, ’w’, encoding=’utf8’)res = rapidjson.dump(dic, f)pprint(res)# 或者下面這種用法import iostream = io.BytesIO()dump(’bar’, stream)print(stream.getvalue()) # b’'bar'’Validator class

rapidjson中的Validator類可以用來做參數(shù)校驗。Validator的參數(shù)是JSON schema,當我們需要知道JSON數(shù)據(jù)中預(yù)期的字段以及值的表示方式時,這就是JSON Schema的用武之地,是描述JSON數(shù)據(jù)結(jié)構(gòu)的一種聲明格式,也可以通俗的理解為是參數(shù)的校驗規(guī)則。如果JSON schema是不可用的JSON格式的數(shù)據(jù),就會拋出JSONDecodeError的異常。

類的參數(shù)就是校驗規(guī)則,如果給定的JSON數(shù)據(jù)沒有通過校驗就會拋出ValidationError異常,異常包括三個部分,分別是錯誤的類型、校驗的規(guī)則以及在JSON字符串中錯誤出現(xiàn)的位置。

import rapidjsonfrom pprint import pprintvalidate = rapidjson.Validator(’{'required': ['a', 'b']}’) # 表示a和b這兩個參數(shù)是必須的validate(’{'a': null, 'b': 1}’) # 符合規(guī)則validate(’{'a': null, 'c': false}’) # rapidjson.ValidationError: (’required’, ’#’, ’#’)

validate = rapidjson.Validator(’{'type': 'array',’ # 參數(shù)類型是array ’ 'items': {'type': 'string'},’ # array中的每個元素類型是string ’ 'minItems': 1}’) # array中元素數(shù)量最少為1validate(’['foo', 'bar']’) # 符合規(guī)則validate(’[]’) # rapidjson.ValidationError: (’minItems’, ’#’, ’#’)

關(guān)于JSON schema的更多參數(shù)校驗規(guī)則以及定義規(guī)范可以參考*JSON schema官方文檔*,下述是一種JSON schema格式僅供參考:

LOGIN_SCHEMA = { 'type': 'object', 'properties': {'token': 'string','number': 'integer' }, 'required': ['token'],} }validate = rapidjson.Validator(rapidjson.dumps(LOGIN_SCHEMA))data = { ’token’: ’python’, ’number’: 10}validate(rapidjson.dumps(data))

到此這篇關(guān)于Python中rapidjson參數(shù)校驗實現(xiàn)的文章就介紹到這了,更多相關(guān)Python rapidjson參數(shù)校驗內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python rapidjson
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美精品综合| 亚洲精品成人一区| 日韩不卡在线观看日韩不卡视频| 每日更新成人在线视频| 欧美精品国产白浆久久久久| 日韩国产在线一| 99久久99久久精品国产片果冰| 国产伊人久久| 日韩综合精品| 蜜桃成人av| 国产视频一区三区| 中文字幕一区二区av| 天海翼精品一区二区三区| 日韩va亚洲va欧美va久久| 国产精品免费精品自在线观看| 日本亚州欧洲精品不卡| 国产免费av国片精品草莓男男| 美女黄网久久| 视频在线观看一区| 国产欧美日韩一区二区三区四区 | 成人一区而且| 日韩综合在线| 亚洲香蕉网站| 中文字幕av一区二区三区人| 美女精品在线观看| 久久久久午夜电影| 久久久精品区| 亚洲精品国模| 婷婷亚洲综合| 国产日韩欧美在线播放不卡| 黄色网一区二区| 日韩二区在线观看| 久久aⅴ国产紧身牛仔裤| 国产综合色产| 美国三级日本三级久久99| 最新国产精品视频| 久久精品国产久精国产爱| 久久国产日本精品| 欧美精品激情| 亚洲一区二区三区高清| 成人国产精品一区二区网站| 亚州精品视频| 中文字幕日本一区| 在线视频精品| 亚洲欧洲日本mm| 群体交乱之放荡娇妻一区二区| 精品亚洲成人| 免费在线观看一区| 国产欧美日韩视频在线| 日韩免费精品| 日韩一区二区三区在线看| 精品一区二区三区在线观看视频| 亚洲激情不卡| 国产欧美在线观看免费| 亚洲婷婷免费| 性欧美xxxx免费岛国不卡电影| 国产欧美另类| 亚洲精品网址| 日本vs亚洲vs韩国一区三区二区| 国产精品免费不| 欧美亚洲国产一区| 国产欧美另类| aⅴ色国产欧美| 精品99在线| 免费人成精品欧美精品 | 亚洲精品影视| 久久av导航| 国产精品一区二区美女视频免费看 | 国产一区精品福利| 色综合视频一区二区三区日韩| 91久久视频| 91伊人久久| 日韩成人亚洲| 免费在线观看视频一区| 国产精品欧美在线观看| 免费av一区二区三区四区| 亚洲天堂免费| 7777精品| 亚洲激情久久| 日韩成人a**站| 一区二区三区四区日韩| 国产精品人人爽人人做我的可爱| 99视频精品视频高清免费| 亚洲精品系列| 国产一区二区三区网| 国产精品久久久久蜜臀| 久久精品电影| 国产精品老牛| 亚洲精品少妇| 午夜欧美精品久久久久久久| 久久a爱视频| 免费国产自线拍一欧美视频| 国产91在线精品| 国产精品一区二区精品| 喷白浆一区二区| 91久久午夜| 久久国产亚洲| 欧美中文高清| 蜜桃久久av| 亚洲激情另类| 久久电影tv| 日韩av中文字幕一区二区| 日韩欧美自拍| 亚州精品视频| 夜久久久久久| 青青久久av| 久久伊人亚洲| 日本aⅴ精品一区二区三区| 成人精品亚洲| 久久爱www.| 国产精品永久| 久久wwww| 国产精久久一区二区| 日本va欧美va欧美va精品| 久久亚洲精品中文字幕蜜潮电影| 久久久久久婷| 黑人精品一区| 国产精品玖玖玖在线资源| 精品视频久久| 蘑菇福利视频一区播放| 欧美一区二区三区久久| 丝瓜av网站精品一区二区| 一区二区三区四区日本视频| 国产66精品| 日韩中文字幕一区二区高清99| 激情国产在线| 亚洲午夜久久| 视频一区二区中文字幕| 亚洲免费影视| 亚洲人成精品久久久| 亚洲欧美在线专区| 综合国产在线| 日本视频在线一区| 国产精品日本一区二区不卡视频| 国产精品久久久免费| 国产精久久一区二区| 蜜臀久久99精品久久久画质超高清| 日韩一区二区三区精品| 91精品视频一区二区| 亚洲精品成人图区| 红桃视频国产一区| а√天堂8资源在线| 久久av影院| 影音先锋久久| 激情亚洲影院在线观看| 国产精品毛片视频| 欧美日韩国产欧| 色综合视频一区二区三区日韩 | 欧美日韩精品一区二区三区在线观看| 91伊人久久| 一本一道久久a久久精品蜜桃| 国产精品99久久免费| 蜜臀a∨国产成人精品| 国产资源在线观看入口av| 久久电影一区| 久久三级中文| 久久亚洲国产精品尤物| 国产精品久久久久久久久久齐齐| 久久蜜桃精品| 日韩午夜免费| 亚洲免费专区| 国产欧美日韩精品一区二区免费| 里番精品3d一二三区| 欧美激情国产在线| 日韩精品dvd| 亚洲欧美日韩在线观看a三区| 日韩中文av| 岛国精品一区| 欧美日韩国产亚洲一区| 午夜电影一区| 九九99久久精品在免费线bt| 日韩黄色大片网站| 天堂成人国产精品一区| 欧美黑人巨大videos精品| 欧美黄色网页| 一级欧美视频| 精品国产一区二区三区噜噜噜| 久久国产直播| 日韩精品一区二区三区免费视频| 国产精品欧美三级在线观看| se01亚洲视频| 日韩一区二区三区精品| 超碰超碰人人人人精品| 亚洲午夜免费| 日本激情一区| 99在线精品免费视频九九视| 国产精品入口久久| 亚洲成人精品| 久久激情五月激情| 一本大道色婷婷在线| 亚洲精品大片| 久久激情婷婷| 久久黄色影视| 欧美日韩国产综合网| 久久国产免费看| 99re国产精品| 国产中文在线播放| 欧美日韩亚洲一区| 欧美日韩水蜜桃| 国产精品sm|