两种方式实现执行来自php接口数据
需求:有时候我们需要在后台批量的处理一些任务,而PHP&nginx有很短时间内超时。所有一个任务可能要分N次处理。
由于crontab比较弱,我们不可以把一个任务拆分N次,写入其中。这里我写了sh 和 python实现php分批处理,当然我们可以放到crontab中运行

0 */8 * * * /usr/bin/python /home/view.py 1 250

0 */8 * * * /usr/bin/sh /home/view.sh 2 50

说明一下参数 其中 参数1 是类型 参数2是每页多少数据
http://localhost/views/count/type/$1/count/$2 这个接口返回是分页后的url 也就是我们真正要执行的php接口路径

python请求此接口返回的是json 由于sh操作json比较麻烦 我就用英文逗号分隔返回的是字符串

此方法提供的是一种思路,供大家参考

一下是代码包 转载请注明来源批量执行来自php接口的数据

方法1
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime – starttime).seconds
方法 2
start = time.time()
run_fun()
end = time.time()
print end-start
方法3
start = time.clock()
run_fun()
end = time.clock()
print end-start
方法1和方法2都包含了其他程序使用CPU的时间,是程序开始到程序结束的运行时间。
方法3算只计算了程序运行的CPU时间

来源:http://blog.sina.com.cn/s/blog_56d8ea900100xzg3.html

本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象。

环境配置

在使用 Python 编码或解码 JSON 数据前,我们需要先安装 JSON 模块。本教程我们会下载 Demjson 并安装:

<span class="pln">$ tar xvfz demjson</span><span class="pun">-</span><span class="lit">1.6</span><span class="pun">.</span><span class="pln">tar</span><span class="pun">.</span><span class="pln">gz
$ cd demjson</span><span class="pun">-</span><span class="lit">1.6</span><span class="pln">
$ python setup</span><span class="pun">.</span><span class="pln">py install</span>

JSON 函数

函数 描述
encode 将 Python 对象编码成 JSON 字符串
decode 将已编码的 JSON 字符串解码为 Python 对象

encode

Python encode() 函数用于将 Python 对象编码成 JSON 字符串。

语法

<span class="pln">demjson</span><span class="pun">.</span><span class="pln">encode</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">,</span><span class="pln"> obj</span><span class="pun">,</span><span class="pln"> nest_level</span><span class="pun">=</span><span class="lit">0</span><span class="pun">)</span>

实例

以下实例将数组编码为 JSON 格式数据:

<span class="com">#!/usr/bin/python</span>
<span class="kwd">import</span><span class="pln"> demjson

data </span><span class="pun">=</span> <span class="pun">[</span> <span class="pun">{</span> <span class="str">'a'</span> <span class="pun">:</span> <span class="lit">1</span><span class="pun">,</span> <span class="str">'b'</span> <span class="pun">:</span> <span class="lit">2</span><span class="pun">,</span> <span class="str">'c'</span> <span class="pun">:</span> <span class="lit">3</span><span class="pun">,</span> <span class="str">'d'</span> <span class="pun">:</span> <span class="lit">4</span><span class="pun">,</span> <span class="str">'e'</span> <span class="pun">:</span> <span class="lit">5</span> <span class="pun">}</span> <span class="pun">]</span><span class="pln">

json </span><span class="pun">=</span><span class="pln"> demjson</span><span class="pun">.</span><span class="pln">encode</span><span class="pun">(</span><span class="pln">data</span><span class="pun">)</span>
<span class="kwd">print</span><span class="pln"> json</span>

以上代码执行结果为:

<span class="pun">[{</span><span class="str">"a"</span><span class="pun">:</span><span class="lit">1</span><span class="pun">,</span><span class="str">"b"</span><span class="pun">:</span><span class="lit">2</span><span class="pun">,</span><span class="str">"c"</span><span class="pun">:</span><span class="lit">3</span><span class="pun">,</span><span class="str">"d"</span><span class="pun">:</span><span class="lit">4</span><span class="pun">,</span><span class="str">"e"</span><span class="pun">:</span><span class="lit">5</span><span class="pun">}]</span>

decode

Python 可以使用 demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。

语法

<span class="pln">demjson</span><span class="pun">.</span><span class="pln">decode</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">,</span><span class="pln"> txt</span><span class="pun">)</span>

实例

以下实例展示了Python 如何解码 JSON 对象:

<span class="com">#!/usr/bin/python</span>
<span class="kwd">import</span><span class="pln"> demjson

json </span><span class="pun">=</span> <span class="str">'{"a":1,"b":2,"c":3,"d":4,"e":5}'</span><span class="pun">;</span><span class="pln">

text </span><span class="pun">=</span><span class="pln"> demjson</span><span class="pun">.</span><span class="pln">decode</span><span class="pun">(</span><span class="pln">json</span><span class="pun">)</span>
<span class="kwd">print</span><span class="pln">  text</span>

以上代码执行结果为:

 

python提供了多个图形开发界面的库,几个常用Python GUI库如下:

  • Tkinter: Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
  • wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。
  • Jython:Jython程序可以和Java无缝集成。除了一些标准模块,Jython使用Java的模块。Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面将使用Swing,AWT或者SWT。Jython可以被动态或静态地编译成Java字节码。

Tkinter 编程

Tkinter 是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。

由于Tkinter是内置到python的安装包中、只要安装好Python之后就能import Tkinter库、而且IDLE也是用Tkinter编写而成、对于简单的图形界面Tkinter还是能应付自如。

Read More →

XML 指可扩展标记语言(eXtensible Markup Language)。 你可以通过本站学习XML教程

XML 被设计用来传输和存储数据。

XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。

它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。

python对XML的解析

常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同。

python有三种方法解析XML,SAX,DOM,以及ElementTree:

1.SAX (simple API for XML )

python 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。

2.DOM(Document Object Model)

将XML数据在内存中解析成一个树,通过对树的操作来操作XML。

3.ElementTree(元素树)

ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。

注:因DOM需要将XML数据映射到内存中的树,一是比较慢,二是比较耗内存,而SAX流式读取XML文件,比较快,占用内存少,但需要用户实现回调函数(handler)。

Read More →