首页 文章 精选 留言 我的

精选列表

搜索[资源包提取],共10022篇文章
优秀的个人博客,低调大师

数据提取之JSON与JsonPATH

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。 JSON和XML的比较可谓不相上下。 Python 2.7中自带了JSON模块,直接import json就可以使用了。 官方文档:http://docs.python.org/library/json.html Json在线解析网站:http://www.json.cn/# JSONjson简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构: 对象:对象在js中表示为{ }括起来的内容,数据结构为 { key:value, key:value, ... }的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象这几种。 数组:数组在js中是中括号[ ]括起来的内容,数据结构为 ["Python", "javascript", "C++", ...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。 import json json模块提供了四个功能:dumps、dump、loads、load,用于字符串 和 python数据类型间进行转换。 1. json.loads()把Json格式字符串解码转换成Python对象 从json到python的类型转化对照如下: # json_loads.py import json strList = '[1, 2, 3, 4]' strDict = '{"city": "北京", "name": "大猫"}' json.loads(strList) # [1, 2, 3, 4] json.loads(strDict) # json数据自动按Unicode存储 # {u'city': u'\u5317\u4eac', u'name': u'\u5927\u732b'} 2. json.dumps()实现python类型转化为json字符串,返回一个str对象 把一个Python对象编码转换成Json字符串 从python原始类型向json类型的转化对照如下: # json_dumps.py import json import chardet listStr = [1, 2, 3, 4] tupleStr = (1, 2, 3, 4) dictStr = {"city": "北京", "name": "大猫"} json.dumps(listStr) # '[1, 2, 3, 4]' json.dumps(tupleStr) # '[1, 2, 3, 4]' # 注意:json.dumps() 处理中文时默认使用的ascii编码,会导致中文无法正常显示 print json.dumps(dictStr) # {"city": "\u5317\u4eac", "name": "\u5927\u732b"} # 记住:处理中文时,添加参数 ensure_ascii=False 来禁用ascii编码 print json.dumps(dictStr, ensure_ascii=False) # {"city": "北京", "name": "大刘"} 3. json.dump()将Python内置类型序列化为json对象后写入文件 # json_dump.py import json listStr = [{"city": "北京"}, {"name": "大刘"}] json.dump(listStr, open("listStr.json","w"), ensure_ascii=False) dictStr = {"city": "北京", "name": "大刘"} json.dump(dictStr, open("dictStr.json","w"), ensure_ascii=False) 4. json.load()读取文件中json形式的字符串元素 转化成python类型 # json_load.py import json strList = json.load(open("listStr.json")) print strList # [{u'city': u'\u5317\u4eac'}, {u'name': u'\u5927\u5218'}] strDict = json.load(open("dictStr.json")) print strDict # {u'city': u'\u5317\u4eac', u'name': u'\u5927\u5218'} JsonPathJsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java。 JsonPath 对于 JSON 来说,相当于 XPath 对于 XML。 安装方法:pip install jsonpath 官方文档:http://goessner.net/articles/JsonPath JsonPath与XPath语法对比:Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。 示例:我们以拉勾网城市JSON文件 http://www.lagou.com/lbs/getAllCitySearchLabels.json 为例,获取所有城市。 # jsonpath_lagou.py import urllib2 import jsonpath import json url = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json' request =urllib2.Request(url) response = urllib2.urlopen(request) html = response.read() # 把json格式字符串转换成python对象 jsonobj = json.loads(html) # 从根节点开始,匹配name节点 citylist = jsonpath.jsonpath(jsonobj,'$..name') print citylist print type(citylist) fp = open('city.json','w') content = json.dumps(citylist, ensure_ascii=False) print content fp.write(content.encode('utf-8')) fp.close() 注意事项:json.loads() 是把 Json格式字符串解码转换成Python对象,如果在json.loads的时候出错,要注意被解码的Json字符的编码,如果传入的字符串的编码不是UTF-8的话,需要指定字符编码的参数encoding 如: dataDict = json.loads(jsonStrGBK); jsonStrGBK是JSON字符串,假设其编码本身是非UTF-8的话而是GBK 的,那么上述代码会导致出错,改为对应的: dataDict = json.loads(jsonStrGBK, encoding="GBK"); 附:字符串编码转换这是中国程序员最苦逼的地方,什么乱码之类的几乎都是由汉字引起的。 其实编码问题很好搞定,只要记住一点: 任何平台的任何编码 都能和 Unicode 互相转换UTF-8 与 GBK 互相转换,那就先把UTF-8转换成Unicode,再从Unicode转换成GBK,反之同理。 # 这是一个 UTF-8 编码的字符串 utf8Str = "你好地球" # 1. 将 UTF-8 编码的字符串 转换成 Unicode 编码 unicodeStr = utf8Str.decode("UTF-8") # 2. 再将 Unicode 编码格式字符串 转换成 GBK 编码 gbkData = unicodeStr.encode("GBK") # 1. 再将 GBK 编码格式字符串 转化成 Unicode unicodeStr = gbkData.decode("gbk") # 2. 再将 Unicode 编码格式字符串转换成 UTF-8 utf8Str = unicodeStr.encode("UTF-8") decode的作用是将其他编码的字符串转换成 Unicode 编码 encode的作用是将 Unicode 编码转换成其他编码的字符串 一句话:UTF-8是对Unicode字符集进行编码的一种编码方式 本文最终解释权归本文作者所有,未经允许不得私自转载

优秀的个人博客,低调大师

Jailer 10.4 发布,智能数据提取工具

Jailer 10.4 已经发布。Jailer 是一个数据库子集和关系型数据浏览的工具。 主要更新内容 SQL 控制台和桌面改进 现在对查询进行深入分析。这使得现在可以检测主键和外键并相应地显示它们以及每一列的来源表 数字数据现在已格式化并右对齐 利用 Oracle DBMS 更快地获取元数据 修复了下拉菜单禁用不一致的问题 修复了使用复杂的过滤器时,参数不起作用的问题 一些小优化 详情请查看更新公告。

优秀的个人博客,低调大师

python基于opencv工具掌纹主线提取

我们将在这篇文章中使用Python和OpenCV库来找出我们手掌中的主线。 首先,让我们读取原始图像: import cv2 image = cv2.imread("palm.jpg") cv2.imshow("palm",image) #to view the palm in python cv2.waitKey(0) 现在我们将图像转换为灰度: gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) 现在我们将使用名为Canny Edge Detector的过滤算法来查找掌纹。 对于不同的图像,我们需要相应地更改参数。 edges = cv2.Canny(gray,60,65,apertureSize = 3) cv2.imshow("edges",edges) cv2.waitKey(0) 现在我们将反转颜色,以保证识别的线条是黑色的: edges = cv2.bitwise_not(edges) cv2.imshow("change black and white",edges) cv2.waitKey(0) 现在,我们将上面的图像与原始图像混合在一起。 cv2.imwrite("palmlines.jpg", edges) palmlines = cv2.imread("palmlines.jpg") img = cv2.addWeighted(palmlines, 0.3, image, 0.7, 0) cv2.imshow("lines in palm", img) cv2.waitKey(0) 完整代码参见: https://github.com/china-testing/python-api-tesing/blob/master/shouxiang/hand.py 参考资料 本文最新版本地址 本文涉及的python测试开发库 谢谢点赞! 本文相关海量书籍下载 2018最佳人工智能机器学习工具书及下载(持续更新) 附加命理知识 手相又称掌相,是一种以手掌的形态和纹理去推论运程的占卜法,中国、西方、吉卜赛都有这种学问。现代手相学主要研究人的心理状态 纹状一般分为清掌与浊掌,再分四大主体,即:人字掌(五十二种型态)、爪字掌(三十三种型态)、川字掌(七十六种型态)、断掌(十八种型态)。 主线有:生命线、智慧线、感情线、 命运线(亦称事业线)等 手诊是一门历史悠久的诊断学科。在东西方医学中都可以找到研究痕迹和成果,手诊在当代已经成为专门的学科,广泛应用于生活。 手诊的概念就是指通过人体手的纹路形态、变化、规律等方式,对人体器官的演变作出推理的一种防治辅助手段。

优秀的个人博客,低调大师

Fast特征点的寻找和提取

一、基础 最初由Rosten和Drummond [Rosten06]提出的FAST(加速段测试的特征)特征检测算法是基于将点P与其包围圆内的点集的直接比较的思想。 基本思想是,如果附近的几个点与P类似,那么P将成为一个很好的关键点。点P是FAST算法的关键点候选者。 影响P分类的点的圈由p周围的圆确定。 在这种情况下,该圆上有16个像素,这里编号为0-15。 具体的算法在这里并没有说明。 二、函数 class cv::FastFeatureDetector : public cv::Feature2D {public:enum {TYPE_5_8 = 0, // 8 points, requires 5 in a rowTYPE_7_12 = 1, // 12 points, requires 7 in a rowTYPE_9_16 = 2 // 16 points, requires 9 in a row};static Ptr<FastFeatureDetector> create(int threshold = 10, //像素强度bool nonmaxSupression = true, //打开或关闭得分较低的邻近点的抑制int type = TYPE_9_16 //参数设置运算符的类型);...}; 三、小结 fast算法本身 基本上已经成为历史的一部分,这里只是作为简单的知识了解一下而已;但是图像处理的基本思路存在循环发展的情况,也就是经典的算法在新的运用场景下面会不断得到新的开发利用:比如fast,在 ORB中得到了和Brief特征的结合,我们届时继续研究。 来自为知笔记(Wiz) 目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册