瑞士陆军数据提取刀

glyphs的Python项目详细描述


字形

示例

来自api调用的示例响应json如下所示。假设我们保留了对那本词典的引用。

my_json_dict={'expand':'schema,names','issues':[{'expand':'operations,versionedRepresentations,editmeta,changelog,renderedFields','fields':{'status':{'description':'','id':'10001','name':'Done','statusCategory':{'colorName':'green','id':3,'key':'done','name':'Done',}}},'id':'10022','key':'XXX-23'},{'expand':'operations,versionedRepresentations,editmeta,changelog,renderedFields','fields':{'status':{'description':'','id':'10001','name':'Done','statusCategory':{'colorName':'green','id':3,'key':'done','name':'Done',}}},'id':'10021','key':'XXX-22'},],'maxResults':50,'startAt':0,'total':17}

对于“问题”的每一项,您如何获得status&;statusCategoryid

issues=my_json_dict['issues']ifissues:# add a lot of code to check if the type returns worked for you# add a lot of code to handle exceptionsforissueinissues:status_name=issue['fields']['status']['name']# add a lot of code to check if the type returned works for you# add a lot of code to handle exceptions# add a code convert the data or have the rest of your code handle unpredictable returnsstatus_id=issue['fields']['status']['statusCategory']['id']# add a lot of code to check if the type returned works for you# add a lot of code to handle exceptions# add a code convert the data or have the rest of your code handle unpredictable returns

这是你能写的最短的。现在你必须希望从那里得到最好的结果,写很多 处理异常、数据转换等的代码。

带有图示符:

fromglyphs.ro.ROGlyphimportROGlyphfromglyphs.utils.DictUtilsimportDictUtilsissues_glyph=ROGlyph('issues',r_translation_function=list,r_default_value=tuple())name_glyph=ROGlyph('fields>status>name',r_translation_function=unicode,)cat_id_glyph=ROGlyph('fields>statusCategory>id',r_translation_function=int,r_default_value=-1)issues=DictUtils.get(my_json_dict,issues_glyph)forissueinissues:status_name=DictUtils.get(my_json_dict,name_glyph)status_id=DictUtils.get(my_json_dict,cat_id_glyph)

类似的代码有一个扭曲:

  1. 我们知道我们得到的正是我们想要的。
  2. 更简单的错误和丢失的数据会自动为我们处理(使用有品位的默认设置)
  3. 如果我们想使代码更短,它还支持functools.partial
  4. 符号是无限共享的!!重复使用和滥用!
  5. 如果my_json_dict的类型改变,我们可以用不同的util(任何您想要的)交换DictUtils (在以后的代码版本中)所有的东西仍然会按照我们的预期工作。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java动态地将圆添加到Arraylist   什么是好的“错误检查”模式(Java)?   java是我们可以在应用程序中使用的云服务,它需要存储最大大小为5MB的小文件   JavaGooglePhotosAPI是静态内容上传项目的永久url   java AES密钥存储   java文件正在下载,但没有任何内容   每次循环迭代和threadsleep的java日志记录都是不好的做法?   java不会切换到另一个。单击submit时使用jsp。春季mvc   java我很难从我的maclaurin系列中获得sin x的准确输出   java使用类似的<Object>?   需要java Hibernate映射吗?   java如何在https和客户端证书请求后面生成web服务代理   java如何通过注释有条件地使用自定义JsonSerializer   java如何在html页面和Restful WebResource方法之间实现JaxB?   读取文件Libgdx Android时发生java错误   java如何在处理主活动之前从另一个方法中获取值?   java在一个SQLquery中使用多个语句,还是使用批处理?