投稿    登录
  《Python3网络爬虫开发实战》赠书活动正在进行中!详情请戳赠书活动!欢迎参与!非常感谢!

Python glom包初探

Python 四毛 6075浏览 165评论

大家好, 我不是崔老师,我是四毛,下面是我的个人公众号,欢迎大家关注。

好久没有写东西了,一直都记录在了自己的笔记上,这一篇是关于glom的一个介绍与初步使用,后期会将里面的各种API再给大家介绍下,同时,最近在搞爬虫的实时数据监控,也挺有意思,后面会和大家分享,敬请期待。

猛然发现,英语水平巅峰就在高考那一天。

因为是边看,边练习,然后翻译,所以个人理解可能有偏差,有错误的地方,请大家指正。

首先,这个库是用来处理一些嵌套的数据的,作者也在PyCon 2018上做了个分享,老美的PyCon还是有点质量的,不像国内的,搞的什么玩意。

视频地址:https://www.youtube.com/watch?v=bTAFl8P2DkE&t=18m07s

 

更新: 2018年7月28日10:32:08

经过咨询库的作者,在最后留的那个问题的准确解法如下:

非常棒,准确来说就是得灵活运用Coalesce方法啊,不能太死板。非常Pythonic。

另附网址,作者有个很搞笑little four hair ,哈哈哈哈

Issue地址

 

1. 官方文档地址

文档地址

2. 安装方法

3. 正式开始

glom,官方的说法是用PYTHONIC的方式来处理内嵌的数据。对于现实世界中的数据处理更加给力,现实世界中的数据,我的理解就是AJAX越来越流行了,处理这类数据会越来越频繁。有如下特点:

  • 对于嵌套数据结构的基于路径式的访问
  • 可读,有意义的错误消息
  • 声明性数据转换,使用轻量级,Pythonic规范
  • 内置数据探索和调试功能

     3.1 原始处理嵌套数据

下面的脚本包导入

下面的data就是个简单的嵌套数据,一般都可以用下面几种方法进行处理

但是当我们的数据改变成下面的这样时:

会报错,而且由于是嵌套数据,从错误信息里我们只知道有个None值,但是到底谁是呢,是a,是b呢,反正肯定不是我们的朋友小哪吒。

    3.2 glom出场

那么glom怎么处理上面的数据呢?

如其所言,路径式:

看起来还是很优雅, 很Pythonic。

错误信息如下:

很明显,这个错误就很直观。

难道仅仅只有这个?当然不是

     3.2.1  Going Beyond Access

上面的是原标题,我的理解是不仅仅获取数据,还有别的呢。

首先,介绍两个基本的术语

现在让我们跟随宇航员的脚步,探索太阳系吧。

  • 获取某个行星的名字:

  • 现在,宇航员们想把行星的名字放进一个列表中,数据是这样:

  • 通常,处理这样的话,都要写个循环,或者搞个列表解析式,那么glom怎么处理呢?

是不是很简单。那么现在新需求又来了,宇航员想得到下面这个数据里面的行星的卫星的数:

  • glom解决方法:

     3.2.2  Changing Requirements

Coalesce 是glom定义的一种结构,允许我们对于spec中的子spec进行进一步的处理,你只要在子spec中将可能存在的值定义好就行了,听起来有点绕,现在来梳理一下。

  • 首先,子spec是什么?

  • 然后,使用其解析数据:

  • 接着当我们的数据变成了这个以后

可以看到,依然可以使用相同的spec来解析不同的目标数据。

有意思的是,你可以在target里面同时写入plantes和dwarf_plants数据试试看,会返回什么数据。

【这里应该是个惰性的匹配,只要匹配到一个,后面的就不再去匹配了】

     3.2.3  True Python Native

真正的原生python

在glom里面,你可以传值给python里面的任意的函数

举例:

  • 求和

原教程这里还有个案例,但是我还没有理解好,就不写出来了,大家可以点击链接自己看一下。

 

4. 结论

下一节,为大家带来其中一些重要的函数。

最后,在用的过程中,一直有个疑问,数据如下:

现在,我想返回的数据格式为:

一开始我以为可以这么用:

但是不行,这样会报错。后来用了另外的方法:

这样感觉很不爽啊,还望会的同学不吝赐教啊。

转载请注明:静觅 » Python glom包初探

喜欢 (12)or分享 (0)

我的个人微信公众号,联系我请直接在公众号留言即可~

扫码或搜索:进击的Coder

进击的Coder

微信公众号 扫一扫关注

想结交更多的朋友吗?

来进击的Coder瞧瞧吧

进击的Coder

QQ群号 99350970 立即加入

进击的Coder灌水太多?

这里是纯粹的技术领地

激进的Coder

QQ群号 627725766 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(165)个小伙伴在吐槽
  1. One of our visitors not long ago advised the following website.
    Google2019-02-14 15:46 (5天前)回复
  2. check below, are some totally unrelated sites to ours, however, they're most trustworthy sources that we use
    male p spot massager2019-02-13 11:26 (6天前)回复
  3. check below, are some entirely unrelated websites to ours, having said that, they're most trustworthy sources that we use
    vibrating dildo review2019-02-13 02:10 (6天前)回复
  4. Trabzon nakliyat ve Trabzon evden eve nakliyat hizmeti sunan kurumsal nakliyat firmaları sizlere kaliteli hizmet sunmak için taleplerinizi bekliyor. Nakliyat platformumuz sayesinde birden fazla Trabzon nakliyat firmalarından anlık olarak nakliyat teklifi alabiliyorsunuz.
    더킹카지노2019-02-12 19:32 (7天前)回复
  5. please check out the web-sites we adhere to, like this 1, because it represents our picks from the web
    windows vps2019-02-12 16:23 (7天前)回复
  6. the time to study or check out the subject material or web-sites we've linked to below the
  7. cây thuốc sildenafil [url=http://viagrauga.com/]cheap viagra usa[/url] do i need a prescription to purchase sildenafil
    Viagrauga.Com2019-02-09 17:59 回复
  8. Youre so cool! I dont suppose Ive read anything like this before. So nice to find somebody with some original thoughts on this subject. realy thank you for starting this up. this website is something that is needed on the web, someone with a little originality. useful job for bringing something new to the internet! https://wapfresh.com
    Kirby Waltemath2019-02-09 10:16 回复
  9. is it ok to take sildenafil everyday generic viagra where we can buy sildenafil in australia
    viagra2019-02-09 09:58 回复
  10. Wonderful story, reckoned we could combine a few unrelated information, nevertheless seriously really worth taking a search, whoa did 1 master about Mid East has got more problerms at the same time
    네임드사다리2019-02-09 09:38 回复
  11. [url=http://cialisle.com/]cialisle.com[/url]
    cialis cost2019-02-09 07:09 回复
  12. very handful of websites that come about to be in depth below, from our point of view are undoubtedly well really worth checking out
    먹튀검증2019-02-09 05:45 回复
  13. demie vie tadalafil [url=http://cialissom.com/]cialis 10mg usa[/url] tadalafil para retardar eyaculacion.
    cialis online2019-02-08 11:58 回复
  14. lcbsdwp donde puedo comprar tadalafil generico http://cialissom.com/ cialis 10mg online cialis 20mg pills can tadalafil be used for pulmonary hypertension
    cialis 10mg usa2019-02-08 10:31 回复
  15. just beneath, are numerous absolutely not related web pages to ours, however, they may be certainly worth going over
    mens stroker2019-02-07 11:37 回复
1 9 10 11