成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

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

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

rapidjson簡介和安裝

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

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進(jìn)行序列化,如果默認(rèn)為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字符,默認(rèn)值是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按照字母進(jìn)行排序。默認(rèn)是False,如果修改為True,字典序列化得到的結(jié)果就是按照字典的key的字母順序進(jìn)行排序的。

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進(jìn)行序列化寫入可寫的流式對象中。

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,當(dāng)我們需要知道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)!

標(biāo)簽: Python rapidjson
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
黄色日韩三级电影| 欧美精品尤物在线| 欧美日韩高清免费| 69av一区二区三区| 美女一区二区视频| 色天天综合久久久久综合片| 亚洲在线免费播放| 韩日成人av| 国产精品网站一区| 欧美午夜视频| 中文字幕欧美国产| 91最新地址在线播放| 日韩免费一区二区| 成人一区二区三区| 欧美电影免费提供在线观看| 国产成人亚洲综合a∨婷婷| 欧美人与禽zozo性伦| 蜜桃av一区二区在线观看| 久久亚洲图片| 丝袜美腿一区二区三区| 久久精品在线| 日韩电影网1区2区| 色999日韩国产欧美一区二区| 午夜视黄欧洲亚洲| 色嗨嗨av一区二区三区| 毛片不卡一区二区| 777午夜精品免费视频| 国产精品69久久久久水密桃| 欧美一区二区网站| 成人福利视频在线看| 欧美一区二区黄色| 成人毛片视频在线观看| 2022国产精品视频| 91亚洲永久精品| 亚洲国产精品激情在线观看| 国产精品国色综合久久| 亚洲欧美日韩一区二区三区在线观看| 国产一区二区久久久| 石原莉奈一区二区三区在线观看| 免费在线成人av| 免费在线观看精品| 欧美另类videos死尸| 国产美女在线精品| 亚洲精品在线一区二区| 欧美1区2区视频| 国产精品国产精品国产专区不蜜| 亚洲动漫精品| 香蕉加勒比综合久久| 欧美午夜精品电影| 国产成人小视频| 国产精品嫩草影院av蜜臀| 一区二区三区四区五区精品| 日本成人中文字幕在线视频| 欧美精品一卡两卡| 91在线观看一区二区| 中文字幕一区二区三区精华液| 一二三区精品| 日本不卡的三区四区五区| 欧美日韩午夜在线| 99精品视频一区| 亚洲人成精品久久久久| 久久综合九色| 国产**成人网毛片九色| 久久精品人人做人人爽人人| 一区二区日韩免费看| 免费观看在线色综合| 精品奇米国产一区二区三区| 激情成人综合| 欧美96一区二区免费视频| 日韩欧美一级二级| 亚洲国产免费看| 麻豆精品在线看| xnxx国产精品| 中文精品视频一区二区在线观看| 久久国产精品露脸对白| 久久久九九九九| 性一交一乱一区二区洋洋av| 国产剧情一区在线| 国产精品美女一区二区| 久久综合伊人| 成人av网址在线| 亚洲一级片在线观看| 欧美高清你懂得| 黑丝一区二区三区| 理论电影国产精品| 国产三区在线成人av| 久久久www| 91在线精品一区二区三区| 亚洲一区二区三区中文字幕在线| 欧美精品在线一区二区| 黑人一区二区| 精品亚洲aⅴ乱码一区二区三区| 久久蜜桃av一区精品变态类天堂 | 北条麻妃一区二区三区| 一区二区三区国产豹纹内裤在线 | 欧美一区二区三区免费在线看| 亚洲无毛电影| 国产乱色国产精品免费视频| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩美女一区二区| 国产精品久久7| 精品一区二区三区av| 国产精品国产自产拍高清av| 欧美系列日韩一区| 精品动漫av| 国产成人av一区二区三区在线观看| 亚洲精品网站在线观看| 欧美一级国产精品| 亚洲欧美日产图| 91免费看`日韩一区二区| 蜜桃在线一区二区三区| 成人免费在线播放视频| 日韩精品在线看片z| 色猫猫国产区一区二在线视频| 国产精品国产亚洲精品看不卡15| 国产在线日韩欧美| 一区二区三区视频在线观看| 日韩欧美国产午夜精品| 美女爽到呻吟久久久久| 欧美日韩国产亚洲一区| 国产剧情在线观看一区二区| 香港成人在线视频| 国产精品国产三级国产有无不卡| 日韩色视频在线观看| 色天天综合色天天久久| 亚洲激情成人| 97精品国产97久久久久久久久久久久| 美女一区二区久久| 亚洲一区av在线| 亚洲欧洲美洲综合色网| 精品人在线二区三区| 在线免费观看不卡av| 日韩视频三区| 欧美日产一区二区三区在线观看| 国产在线精品一区二区夜色 | 亚洲国产欧美一区二区三区丁香婷| 国产三级久久久| 日韩一区二区在线观看视频 | 韩国自拍一区| 欧美成人dvd在线视频| 国产999精品久久| 卡一卡二国产精品| 午夜精品视频在线观看| 亚洲色图视频网站| 精品成人佐山爱一区二区| 欧美人动与zoxxxx乱| 久久久人人人| 一区二区国产精品| 亚洲夜间福利| 午夜精品电影| 99精品久久免费看蜜臀剧情介绍| 国产精品911| 久久99精品国产.久久久久久| 午夜精品aaa| 亚洲国产一区二区在线播放| 自拍av一区二区三区| 国产精品素人一区二区| 国产欧美日韩激情| 久久久久久免费| 欧美精品一区二区三区蜜桃| 日韩一区二区三区在线视频| 欧美日本国产一区| 欧美图片一区二区三区| 久久精彩视频| 亚洲综合国产激情另类一区| 91久久在线| 亚洲青色在线| 亚洲高清免费| 亚洲大胆视频| 激情综合在线| 悠悠资源网久久精品| 国产综合久久| 国产一区二区三区四区老人| 欧美.www| 色综合婷婷久久| 色综合一区二区| 欧美成人有码| 国产精品啊啊啊| 狠狠色狠狠色综合人人| 欧美日韩国产欧| 狠狠入ady亚洲精品经典电影| 亚洲午夜精品国产| 狠狠色狠狠色综合人人| 亚洲一二三区精品| 亚洲国产婷婷| 亚洲欧洲精品一区| 国产亚洲精品久久飘花| 美女尤物久久精品| 一本久久综合亚洲鲁鲁五月天| 久久久久综合| 欧美少妇bbb| 91精品国产91综合久久蜜臀| 欧美电影免费观看高清完整版在线 | 日韩国产欧美三级| 日本欧美大码aⅴ在线播放| 久久激情五月婷婷| 国产精品一二三四五| 懂色av一区二区三区免费看| 99v久久综合狠狠综合久久| 午夜日韩av|