文章目录

  • 玩转json
    • 什么是json
    • Python中的Json模块
      • 获取json中的某个数据
    • Jpath
  • numpy
    • 使用ndarray创建数组的好处
    • numpy基本操作
  • 文本数据去重
  • 数据采集方式

好几天没写啥实在的干货了,今天见六不废话了,直接上干货。


玩转json

什么是json

Json是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。

如果说现在对json还没有什么概念的朋友,了解了以上内容之后,再了解一下它是字典形式的即可。一切存取操作如字典。
只是前后可能做点格式转换罢了。

来个例子熟悉一下:

{"animals": {"dog": [{"name": "Rufus","age":15},{"name": "Marty","age": null}]}
}

我们平时要去哪里找这种json格式的数据呢?网络抓包抓出来的就有很多是这样的,前面不是说了嘛。


Python中的Json模块

Python有自带的json模块,用的比较多的函数有如下:

json.dumps() 是将 python 对象转化为 json。json.loads() 是将 json 转化为 python 对象。

如果你是用谷歌浏览器来看网页源码的话,你看到的json包那是相当之凌乱的啊,这时候我建议你先暂时切换到火狐来,就会看到如下格式的图:

是不是会清晰很多、

获取json中的某个数据

如果我们要获取上面示例数据(test)中的某个元素,比方说,狗的名字,要如何操作呢?

dog_msg = json.loads(test)
for msg in dog_msg["animals"]["dog"] print(msg["name"])

注意,在json数据里面,{} 是字典,[] 是列表。


Jpath

既然XML都有Xpath,那 json 就不配有自己的导航路径了吗?
那必须有啊,安排!!!

接下来,我们使用Jpath来获取一下所有的狗的名字:

load_data = json.loads(dump_data)
data=load_data['animals']['dog']for i in data:
# 从根节点开始,匹配name节点print(jsonpath.jsonpath(i,'$..name')[0])

其中 $…name 代表从根节点开始,匹配name节点


numpy

numpy,底层运行的是C和C++的代码,但是上层使用的是python语言去写的。

考虑到不是所有小伙伴都学过C/C++,我还是简单介绍一下ndarray。

list列表中可以存储不同的数据类型。ndarray数组中存储的所有的元素的类型,都必须一致。

使用ndarray创建数组的好处

ndarray好处在于:1、由于元数据(数据类型)只需要存储一份,所以可以更节省空间。2、由于每个元素的类型一致,就证明每个元素占用内存的大小是一致的,那么这样的数据的存储可以更紧凑,操作更高效。


numpy基本操作

创建numpy对象

import numpy as nparray1 = [1,2,3]
m = np.array(array1)
display(m)
array1 = np.arange(1,10,2)
display(array1)

arange()函数的步长,可以是浮点数,但是range()函数的步长,不能是浮点数

np.zeros((x,y)):生成一个x行y列的,元素都是0的二维数组;np.ones((x,y)):生成一个x行y列的,元素都是1的二维数组;np.full((x,y),value):生成一个x行y列的,元素都是value的二维数组,其中这个value值可以是整数(正整数,0,负整数)或者小数

and so on.

我也不知道为啥写了这么一个模块,但是既然写了就放这里吧。


文本数据去重

在做情感分析的时候,有时候需要对文本进行分词,做词频统计。

以“单字词”为例,进行原理说明:

通过上图可以发现,进行词语句内去重,首先判断位置j到j+1位置的元素是否相等,如果相等,再判断j+1处的元素和j+2处的元素是否相等,这样依次进行下去。

不多说,直接上代码吧:

def func(st):for i in range(1,int(len(st)/2)+1):for j in range(len(st)):if st[j:j+i] == st[j+i:j+2*i]:k = j + iwhile st[k:k+i] == st[k+i:k+2*i] and k<len(st):k = k + ist = st[:j] + st[k:]return stst = "我爱你我爱你我爱你好你好你好哈哈哈哈哈"
func(st)

数据采集方式

这几天都在陆陆续续的做数据采集,也感受到了采集数据的困难,所以还是有必要开这么一块儿的。

目前我所能了解到的比较好的数据采集方式如下:

1、日志,这个毋庸置疑了吧
2、政府网站:如国家统计局,我们之前做时间序列分析的课设就是那里找到。
此外还有:国家数据网等
3、私人数据网站,如:蝉妈妈等,这个需要经验。
4、咨询类公司数据报告,这个就是花钱买数据了。
5、数据竞赛网站:国内外都有许多著名的数据竞赛网站,在这里聚集了大量数据分析师,甚至是数据科学家。这些网站不仅提供了大量数据,也由于专业性的比赛,也是学习数据分析的好地方。
如:下方蓝字
6、开放API接口,如:下方蓝字
7、网络爬虫

Kaggle
科赛
阿里天池

百度数据开放平台
聚合数据
高德地图
百度地图

打开我的收藏夹 -- Python数据分析杂谈相关推荐

  1. 打开我的收藏夹 -- Python爬虫篇(2)

    文章目录 前言 时间戳 爬虫中时间戳常见场景 时间戳如何转换 url去重 网页请求的背后流程 HTTP HTTP请求的一般流程: HTTP请求(Request): HTTP响应(Response): ...

  2. excel加载项不能被加载_Excel收藏夹加载项

    excel加载项不能被加载 As you work in Excel, the files that you've used most recently appear at the bottom of ...

  3. Python数据分析实战(3)Python实现数据可视化

    文章目录 一.数据可视化介绍 二.matplotlib和pandas画图 1.matplotlib简介和简单使用 2.matplotlib常见作图类型 3.使用pandas画图 4.pandas中绘图 ...

  4. navicat for mysql收藏夹

    navicat for mysql如果库表非常多的化,每次输入表名比较繁琐. 可以进入收藏夹便于快速打开经常使用的库表. 打开要入收藏夹的表,文件-添加收藏夹. 也可以快捷键shift+ctrl+1  ...

  5. 注册表收藏夹任你玩(4招)

    第一部分: 一.什么是注册表 注册表是2000/XP操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是一个非常巨大的树状分层结构的数据库系统.   ...

  6. edge浏览器整理收藏夹 找不到收藏夹

    网上流行的一个方法是找到这个文件夹: Win10 Edge浏览器收藏夹备份方法: 1.打开Edge浏览器收藏夹位置: 按Win+R打开运行或直接在资源管理器地址栏中输入下面的路径回车即可 %Local ...

  7. 计算机收藏夹无法添加,Win7系统收藏夹不能用怎么办?

    不知道大家有没有遇到这样的情况,在使用win7系统的时候,电脑收藏夹不能用,但自己又不知道是怎么回事,为此非常苦恼.经过小编的研究发现,造成这个问题的原因一般是因为没有存放收藏网页的合法路径和位置,解 ...

  8. 一级计算机浏览器题加收藏夹,2016年计算机一级考试上机操作重难点突破

    第六部分 因特网操作(10分) 一.电子邮件操作 登录软件,从软件界面左侧栏中选择"网络操作",然后单击打开界面右下侧的按钮进入"Outlook Express" ...

  9. edge如何导入html文件收藏夹,win10系统edge浏览器收藏夹导入/导出的操作方法

    很多小伙伴都遇到过对win10系统edge浏览器收藏夹导入/导出进行设置的困惑吧,一些朋友看过网上对win10系统edge浏览器收藏夹导入/导出设置的零散处理方法,并没有完完全全明白win10系统ed ...

  10. Windows10 更新1607版本,系统自带浏览器Microsoft Edge收藏夹消失?

    Windows10 更新1607版本,系统自带浏览器Microsoft Edge收藏夹消失? 最近win10在我没有察觉的时候,自己偷偷更新,然后我就发现我收藏的所有网页全都被清空.然后,我在Edge ...

最新文章

  1. 【深度学习基础】一步一步讲解卷积神经网络
  2. 难离难舍的internet2与SDN
  3. nagios全攻略(三)----使用插件监控更多信息
  4. JAVA常用框架和插件
  5. 图像处理之中值滤波介绍及C实现
  6. WebSite和Web Application\网站与Web项目的区别
  7. Java开发十大常用网站
  8. RabbiMQ基础以及spring-boot-starter-amqp使用
  9. sql server 2008 的安装
  10. Anbox之Ubuntu18.04安装(二)
  11. (12)数据结构-二叉树基本操作
  12. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。
  13. EasyRecovery14免费版文件数据恢复还原软件
  14. 开源项目之MD5校验工具 md5deep
  15. Go第八篇之包的使用
  16. php eot 变量,在EOT内插入带有PHP变量的python代码
  17. 荣之学:跨境电商和淘宝哪个好?
  18. pyautoGUI自动化脚本
  19. Android运行时Crash自动恢复框架-Recovery
  20. 普林斯顿算法(第一周作业Percolation 100分)

热门文章

  1. 分段式多级离心泵_分段式多级离心泵的组装与调整
  2. 10000marker_嘉美生物-精准的DNA分子量标准 Marker。
  3. hana数据库导入mysql_在SAP HANA Express Edition里创建数据库表
  4. 跟着“不睡觉的怪叔叔”一起学习openlayers入门
  5. 2017lol服务器维修时间,LOL维护公告2017最新内容 英雄联盟今天更新到几点
  6. xp如何在电脑上设置无线网络连接服务器,xp电脑怎么设置wifi
  7. java程序员创业需要_java程序员出路有哪些
  8. [Android O] [RK3399] -- Vendor Storage 功能探究
  9. spyder 更改默认工作目录的最优方法
  10. 云通讯 发送短信模板代码