当前位置: 首页 > news >正文

苏州建设网站市政中标项目拼多多标题优化软件

苏州建设网站市政中标项目,拼多多标题优化软件,个人网站有哪些板块,wordpress小子邀请码开篇 上期内容简单说到了。params类类型参数的解析方法。相较于简单。本期内容就json格式的数据解析#xff0c;来进行阐述。 在MeterSphere中#xff0c;有两种方式可以进行json格式的数据维护。一种是使用他们自带的JsonSchema来填写key-value表单。另一种就是手写json。… 开篇 上期内容简单说到了。params类类型参数的解析方法。相较于简单。本期内容就json格式的数据解析来进行阐述。 在MeterSphere中有两种方式可以进行json格式的数据维护。一种是使用他们自带的JsonSchema来填写key-value表单。另一种就是手写json。 手写json在日常工作中效率较低原因有二一是手写太麻烦占据大量个工作时间影响效率。二是对正确性以及层级结构无法保证准确性。两者相比较故选择JsonSchema的方式来维护json格式的数据。 json格式数据模型如下 jsonSchema: {properties: {字段1: {mock: {mock: },type: string,description: 字段描述。。。},字段2: {type: number,mock: {mock: },minLength:50,maxLength:100},字段3: {type: integer,mock: {mock: },description: 字段描述}},type: object,mock: {mock: },required: [字段1,字段2,]} 使用JsonSchema作为最外层节点第二层节点包含了类型、字段属性、必填字段列表等参数信息。第三层节点就是字段的一些属性包含了字段长度、字段名称、字段类型、字段描述等 特别需要说明的是MeterSphere的字段类型有很多其中包含了object以及array这两种类型的数据 object如果字段类型是object那么该字段节点下会嵌套另外一些字段这些字段也是json格式的 array同理如果字段类型是array那么该字段下面会嵌套一个列表列表中的每一个元素都是json格式不可以手动设置key是从0递增自动命名。 这两种类型是可以无限重复套娃下去。只要你需要。 所以在解析这类数据时我们就需要先解决这种层层嵌套的问题。 思路梳理 首先判断一下数据类型是否为上述这种套娃格式 判断字段类型是object还是array 利用python的递归调用自身。并将字段属性作为参数传给这个函数 然后提取字段中的最大值最小值以及参数名称、类型 判断当前字段是否在必填列表中如果在则将这个字段设置为必填 如上是大概的解题思路抛开拆解套娃代码相对简单。如下是源码展示 # 解析json请求的参数 def post_arguments(data, required_listNone):field {}if not isinstance(data, dict):raise TypeError(data is not dict)for key, value in data.items():if value[type] object and properties in value:# 递归调用,实现多层嵌套解析if required in value:recursion_par post_arguments(value[properties], value[required])par {key:{type: value[type],description: value[description] if description in value else ,**recursion_par}}field.update(par)else:recursion_par post_arguments(value[properties])par {key: {type: value[type],description: value[description] if description in value else ,**recursion_par}}field.update(par)elif value[type] array and items in value:for l, i in enumerate(value[items]):for arr_key, arr_value in i.items():if arr_value object and properties in arr_value:# 递归调用,实现多层嵌套解析if required in arr_value:recursion_par post_arguments(arr_value[properties], value[required])par {l: {type: value[type],description: value[description] if description in value else ,**recursion_par}}field.update(par)else:recursion_par post_arguments(arr_value[properties])par {l: {type: value[type],description: value[description] if description in value else ,**recursion_par}}field.update(par)elif arr_value array and items in arr_value:if required in arr_value:recursion_par post_arguments(arr_value[properties], arr_value[required])par {l: {type: value[type],description: value[description] if description in value else ,**recursion_par}}field.update(par)else:recursion_par post_arguments(arr_value[properties])par {l: {type: value[type],description: value[description] if description in value else ,**recursion_par}}field.update(par)else:maxLength MAX_LENGTHminLength MIN_LENGTHrequired falseif maxLength in arr_key:maxLength i[maxLength]elif maxLength in arr_key:minLength i[minLength]if required_list:if l in required_list:required trueitems_par {key:{type: value[type],description: value[description] if description in value else ,l: {type: i[type],required: required,max: maxLength,min: minLength}}}field.update(items_par)else:maxLength MAX_LENGTHminLength MIN_LENGTHrequired falseif maxLength in value:maxLength value[maxLength]elif minLength in value:minLength value[minLength]if required_list:if key in required_list:required trueelse:required falsepar {key: {type: value[type],description: value[description] if description in value else ,required: required,max: maxLength,min: minLength,}}field.update(par)return field 可以看到思路不是很难但是代码还是比较臃肿的其中有很多的代码是冗余的在后期优化中将考虑这块重构一下。大家在写的时候将思路缕清别写出我这么烂的代码。。。。引以为戒~ 结语 总结一下这个函数 首先在写的时候多重嵌套是个难题可以通过递归的方式解决 另外一定在思路缕清的前提下再开始写代码我就是在边写边思考一个for循环一个for循环的嵌套。导致代码极其臃肿。执行效率有一定程度的降低且代码可读性不好 公共代码提取像一些数据结构模板这些都可以提取成一个公共变量然后调用即可。在函数中反复写着相类似的模板是一种很愚蠢的行为。。。 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜 生命不息奋斗不止。每一份努力都不会被辜负只要坚持不懈终究会有回报。珍惜时间追求梦想。不忘初心砥砺前行。你的未来由你掌握 生命短暂时间宝贵我们无法预知未来会发生什么但我们可以掌握当下。珍惜每一天努力奋斗让自己变得更加强大和优秀。坚定信念执着追求成功终将属于你 只有不断地挑战自己才能不断地超越自己。坚持追求梦想勇敢前行你就会发现奋斗的过程是如此美好而值得。相信自己你一定可以做到 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.pierceye.com/news/596162/

相关文章:

  • 外国知名个人网站衡阳做网站公司
  • 女人网站源码沈阳大型网站制作公司
  • 河南外贸网站建设中国建设银行密码重置网站
  • 搭建网站是什么专业资阳网络营销顾问招聘
  • 建个门户网站网站开发人员配备
  • 营销型网站建设 上海工程造价
  • 做暧暧暖网站想建个企业网站
  • 南通做外贸的公司网站建筑招聘求职网
  • 网站排名顾问江苏省建设网站首页
  • 青岛找网站建设公司印记室内设计网站
  • 上海网站建设聚众网络网站对域名
  • 可做百科资料参考的网站福州网页定制
  • 开发一个网站需要多长时间高端网站定制开发设计制作
  • 桐乡做网站的公司视频网站建站费用
  • 企业网站建设服务网站制作的困难与解决方案
  • 宜昌营销型网站内存优化大师
  • 做购物网站的费用上海有名的效果图公司
  • 站长统计网站统计建立自己的网站软件有
  • 单页网站制作系统装修的网站都有哪些
  • 什么样的网站可以做站内站外贸网站wordpress
  • 网站栏目策划方案上不了建设银行网站
  • 深圳网络营销网站推广方法大连网页设计制作公司
  • 去哪想找人帮我做网站网站开发连接形式
  • 网龙公司有做网站吗北京建设银行支行查询官方网站
  • 本地推广找哪些网站wordpress isux主题
  • 写作网站可保存德阳网站建设公司
  • 找人做网站要密码吗榆林网站seo
  • 不同网站建设报价单深圳室内设计公司排行
  • wap网站价格用python做网站的多吗
  • 为什么要找对做网站的公司枣阳网站建设等服务