首页 开发编程 正文

PHP怎么做存储过程

Twitter和Facebook之类的网站都通过其应用程序编程接口(API)向程序员提供某些数据。重新生成数据集并每分钟下载一次并没有实际意义-这会占用大量带宽,除了您的程序要求数据而不是您的Web浏览器询问网页之外。...

PHP怎么做存储过程,Python有多好用?

在有关大数据分析Python API的本教程中,我们将学习如何从远程网站检索数据以进行数据科学项目。像baidu,Twitter和Facebook之类的网站都通过其应用程序编程接口(API)向程序员提供某些数据。要使用API,你需要向远程Web服务器发出请求,然后检索所需的数据。

但是,为什么要使用API而不是可以下载的静态数据集呢?API在以下情况下很有用:

a.数据变化很快。股票价格数据就是一个例子。重新生成数据集并每分钟下载一次并没有实际意义-这会占用大量带宽,而且速度很慢。

b.您需要一小部分更大的数据。Reddit评论就是一个例子。如果您只想在Reddit上发表自己的评论该怎么办?下载整个Reddit数据库,然后仅过滤您自己的注释并没有多大意义。

c.涉及重复计算。Spotify的API可以告诉您音乐的流派。从理论上讲,您可以创建自己的分类器,并使用它对音乐进行分类,但您将永远不会拥有Spotify所拥有的数据。

在上述情况下,API是正确的解决方案。对于本数据科学教程,我们将查询一个简单的API,以检索有关国际空间站(ISS)的数据。使用API可以节省我们自己进行所有计算的时间和精力。

大数据分析Python中的API请求

API托管在Web服务器上。当您www.google.com在浏览器的地址栏中键入内容时,您的计算机实际上是在向www.google.com服务器询问网页,然后该网页返回到您的浏览器。

API的工作方式几乎相同,除了您的程序要求数据而不是您的Web浏览器询问网页之外。这些数据通常以JSON格式返回(有关更多信息,请参阅有关使用JSON数据的教程)。

为了获取数据,我们向Web服务器发出请求。然后,服务器将回复我们的数据。在大数据分析Python中,我们将使用请求库来执行此操作。在此大数据分析Python API教程中,我们将为所有示例使用大数据分析Python 3.4。

请求类型

有许多不同类型的请求。最常用的一个GET请求用于检索数据。

我们可以使用一个简单的GET请求从OpenNotify API 检索信息。

OpenNotify具有多个API端点。端点是用于从API检索不同数据的服务器路由。例如,/commentsReddit API上的端点可能会检索有关注释的信息,而/users端点可能会检索有关用户的数据。要访问它们,您可以将端点添加到API 的基本URL中。

我们将在OpenNotify上看到的第一个端点是iss-now.json端点。该端点获取国际空间站的当前纬度和经度。如您所见,检索此数据不适用于数据集,因为它涉及服务器上的一些计算,并且变化很快。

您可以在此处查看OpenNotify上所有端点的列表。

OpenNotify API 的基本网址是http://api.open-notify.org,因此我们将其添加到所有端点的开头。

状态码

我们刚刚发出的请求的状态码为200。向Web服务器发出的每个请求都返回状态代码。状态代码指示有关请求发生的情况的信息。以下是与GET请求相关的一些代码:

a)200 -一切正常,结果已返回(如果有)

b)301—服务器正在将您重定向到其他端点。当公司切换域名或更改端点名称时,可能会发生这种情况。

c)401-服务器认为您未通过身份验证。当您没有发送正确的凭据来访问API时就会发生这种情况(我们将在以后的文章中讨论身份验证)。

d)400-服务器认为您提出了错误的请求。当您没有正确发送数据时,可能会发生这种情况。

e)403 —您尝试访问的资源被禁止—您没有正确的权限查看它。

f)404 -在服务器上找不到您尝试访问的资源。

现在http://api.open-notify.org/iss-pass,根据API文档,向不存在的端点发出GET请求。

击中正确的终点

iss-pass不是有效的端点,因此我们得到了一个404状态码作为相应。.json正如API文档所述,我们忘记在最后添加。

现在,我们将向发出GET请求http://api.open-notify.org/iss-pass.json。

查询参数

您将在上一个示例中看到,我们得到了一个400状态码,表示请求错误。如果您查看OpenNotify API的文档,我们会发现ISS Pass端点需要两个参数。

当ISS下次通过地球上的给定位置时,将返回ISS Pass端点。为了对此进行计算,我们需要将位置的坐标传递给API。为此,我们传递了两个参数-纬度和经度。

为此,我们可以在params请求中添加可选的关键字参数。在这种情况下,我们需要传递两个参数:

1)lat —我们想要的位置的纬度。

2)lon —我们想要的位置的经度。

我们可以使用这些参数制作字典,然后将它们传递给requests.get函数。

我们还可以通过将查询参数添加到url中来直接做同样的事情,如下所示:http://api.open-notify.org/iss-pass.json?lat=40.71&lon=-74。

将参数设置为字典几乎总是可取的,因为requests它可以处理一些事情,例如正确设置查询参数的格式。

我们将使用纽约市的坐标进行请求,然后查看得到的答复。

b'{n "message": "success", n "request": {n "altitude": 100, n "datetime": 1441417753, n "latitude": 40.71, n "longitude": -74.0, n "passes": 5n }, n "response": [n {n "duration": 330, n "risetime": 1441445639n }, n {n "duration": 629, n "risetime": 1441451226n }, n {n "duration": 606, n "risetime": 1441457027n }, n {n "duration": 542, n "risetime": 1441462894n }, n {n "duration": 565, n "risetime": 1441468731n }n ]n}'

b'{n "message": "success", n "request": {n "altitude": 100, n "datetime": 1441417753, n "latitude": 40.71, n "longitude": -74.0, n "passes": 5n }, n "response": [n {n "duration": 329, n "risetime": 1441445639n }, n {n "duration": 629, n "risetime": 1441451226n }, n {n "duration": 606, n "risetime": 1441457027n }, n {n "duration": 542, n "risetime": 1441462894n }, n {n "duration": 565, n "risetime": 1441468731n }n ]n}'

使用JSON数据

您可能已经注意到,响应的内容之前是a string(尽管它显示为bytes对象,但是我们可以使用轻松地将内容转换为字符串response.content.decode("utf-8"))。

字符串是我们将信息来回传递给API的方式,但是很难从字符串中获取我们想要的信息。我们如何知道如何解码返回的字符串并在大数据分析Python中使用它?我们如何altitude从字符串响应中找出ISS的含义?

幸运的是,有一种名为JavaScript Object Notation(JSON)的格式。JSON是一种将列表和字典之类的数据结构编码为字符串的方法,以确保它们易于被机器读取。JSON是将数据来回传递给API的主要格式,大多数API服务器将以JSON格式发送其响应。

json套件随附大数据分析Python强大的JSON支持。该json软件包是标准库的一部分,因此我们无需安装任何程序即可使用它。我们既可以将列表和字典转换为JSON,也可以将字符串转换为列表和字典。就我们的ISS Pass数据而言,它是一个字典,编码为JSON格式的字符串。

json库有两种主要方法:

1)dumps —接收一个大数据分析Python对象,并将其转换为字符串。

2)loads —接收JSON字符串,并将其转换为大数据分析Python对象。

从API请求获取JSON

通过使用.json()响应上的方法,您可以将响应的内容作为大数据分析Python对象获取。

{'response': [{'risetime': 1441456672, 'duration': 369}, {'risetime': 1441462284, 'duration': 626}, {'risetime': 1441468104, 'duration': 581}, {'risetime': 1441474000, 'duration': 482}, {'risetime': 1441479853, 'duration': 509}], 'message': 'success', 'request': {'latitude': 37.78, 'passes': 5, 'longitude': -122.41, 'altitude': 100, 'datetime': 1441417753}}

内容类型

服务器不仅会在生成响应时发送状态码和数据。它还发送包含有关如何生成数据以及如何对其进行解码的信息的元数据。这存储在响应头中。在大数据分析Python中,我们可以使用headers响应对象的属性来访问它。

标头将显示为字典。在标题中,content-type是目前最重要的键。它告诉我们响应的格式以及如何对其进行解码。大数据分析Python API入门教程https://www.aaa-cg.com.cn/data/2308.html对于OpenNotify API,格式为JSON,这就是为什么我们可以json更早地使用包对其进行解码的原因。

寻找太空中的人数

OpenNotify还有一个API端点astros.json。它告诉你当前有多少人在太空中。相应的格式可以在这里找到。

9

{'number': 9, 'people': [{'name': 'Gennady Padalka', 'craft': 'ISS'}, {'name': 'Mikhail Kornienko', 'craft': 'ISS'}, {'name': 'Scott Kelly', 'craft': 'ISS'}, {'name': 'Oleg Kononenko', 'craft': 'ISS'}, {'name': 'Kimiya Yui', 'craft': 'ISS'}, {'name': 'Kjell Lindgren', 'craft': 'ISS'}, {'name': 'Sergey Volkov', 'craft': 'ISS'}, {'name': 'Andreas Mogensen', 'craft': 'ISS'}, {'name': 'Aidyn Aimbetov', 'craft': 'ISS'}], 'message': 'success'}

大数据分析Python API数据科学教程:后续步骤

现在,您已经完成了大数据分析Python API教程,现在应该可以访问简单的API并发出get请求了。requests在我们的dataquest API和抓取课程中,还有其他几种类型,您可以了解更多信息以及与API身份验证一起使用。

建议的其他后续步骤是阅读请求文档,并使用Reddit API。有一个名为PRAW 的程序包,它使在大数据分析Python中使用Reddit API更加容易,但是建议requests首先使用它来了解一切的工作原理。

https://www.toutiao.com/i6832146415016215043/

自学web后端如何规划学习路线?

目前企业主流的web后台开发语言主要有:Java,.NET,Python,PHP等;

Java和.net 自然不用说了,一直都是作为比较主流的后台开发语言, 随着云计算、人工智能等的发展,Python语言最近几年出现了爆发式的增长,Python语言的关注度增长了10倍。

Python程序阅读起来简单易懂,优雅,简单,易学。开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,学习web后端的话,Python是一个不错的选择,人工智能时代,Python是最好的语言。

以前学习Python是在 “ 如鹏网 ”上学习的,有详细的学习路线,可以参考一下。

第一部分:Python语言基础第二部分:数据库开发第三部分:web前端第四部分:Python web开发第五部分:Python web项目开发(项目截图可访问如鹏网官网)第六部分:Linux第七部分:NoSQL第八部分:数据可视化第九部分:爬虫技术第十部分:人工智能

详细的可以到如鹏网官网上去了解一下,有网络的地方就可以学习,有问题随时提问,老师实时在线答疑,有新的课程更新了,也是可以继续来学习的,有技术大牛亲自授课,口碑不错,基本上都是慕名而去的。

数组函数实验原理?

数组函数库,该类函数允许用多种方法来操作数组和与之交互。数组的本质是储存,管理和操作一组变量。 PHP 支持一维和多维数组,可以是用户创建或由另一个函数创建。有一些特定的数据库处理函数可以从数据库查询中生成数组,还有一些函数返回数组。

redis怎么存数组和获取数组?

有两种方法:

1.把要存的数组序列化 或者 json_encode后 变成字符串再存。取的时候 反序列号或者json_decode处理成数组。

2.可以使用hash结构,以key作为1维,以hash中的field作为第二维。redis 如何操作多维数组?1.Redis用list这种一维数组来模拟二维。

2.序列化一下保存的数据,在原有的hset跟hget的基础上新增了两个方法 setArr跟getArr 调用 hset hget 用来保存多维数组的情况,这两个方法是在存之前,取之后都进行序列化操作。

3.用redis存多维数组,可以把数组json_encode转换成json各式数据,以string类型的方式存储。读取的时候再json_decode回来。

4.Redis本身不支持存取PHP数组的数据结构,但是如何存取PHP的数组呢?可以把数组序列化,以字符串的形式缓存到Redis中。

5.以使用hmset把PHP数组保存为hash类型的数据,使用hmget读取一维的键没问题,读取二维的多维的键就返回false。

初学者如何学习PHP框架?

学习PHP框架的话,关键的代码要能看懂和做些修改,整个框架运行的逻辑清楚。目录结构有个大致的了解,一些封装的方法知道怎么用。这个框架的优点和缺点是什么,你在项目中的扬长避短。

P.S:学懂PHP框架,还得靠自己,最重要的是坚持,坚持,再坚持,就是步入成功的不二法门。

先简单讲下PHP的过程:

(1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度。

(2)理解动态语言的概念,运做机制,熟悉PHP语法

(3)学习如何将PHP与HTML结合起来完成简单动态页面

(4)接触MYSQL,开始设计数据库程序

(5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板

(6)完成一个功能齐全的动态站点

这个PHP的学习思路对许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,在此不得不对您稍微泼一下冷水,任何东西其实都不简单,需要坚持。

掌握了这些之后,下面那该如何去学习PHP框架呢?

第一:首先一定要选择一个合适的php框架去专研,

在国内,使用lavarel框架,yii,ci和tp框架的人比较多,可以从中选一个去学习,新手不建议一开始就开始着手lavarel和yii,相对来说这个还是比较难的,可以去学习ci和tp框架就可以。

第二:学习输出hello world,hello world并不难,但是对于学习一门新的语言或框架,很重要。

第三:学习理解单一入口和网址解析(即网址路由),单一入口,对于新手来说,可能有点不太好理解。

第四:学习数据库的添加,修改,删除,查询,学会简单的数据库操作。

第五:学习php框架常用的函数和类库,php框架中一般会带一些常用的函数和类,可以稍微看一下,此时还没有必要深入研究,等用到的时候再详细的去看手册和样例。

第六:下载基于此框架开源的项目系统下来学习,了解了php框架的执行流程,模板操作,和数据库操作,下载一个开源的系统,下来去学习,学习别人的代码,学得更快。

第七:做项目学习,要熟练掌握一个的框架,需要大量的实践,通过做项目,去深入学习。

第八:阅读框架代码,了解其实现原理,其实道理这一步就已经学会

本文转载自互联网,如有侵权,联系删除