1010数据api日期时间转换

时间:2016-11-23 06:36:31

标签: 1010data

他们是否可以将检索到的数据从1010 api转换为以下格式。

存储格式:20161020 预期格式:10月20日

我想在1010data Query中执行此操作。

1 个答案:

答案 0 :(得分:3)

1010data API和SDK将数据发送回未格式化。因此,为了以您希望的格式返回数据,您必须对其执行字符串操作。在您的情况下,您可以使用以下语法来获取所需的格式:

<willbe name="string_date" value="splice(case(month(date_col);1;'Jan';2;'Feb';3;'Mar';4;'Apr';5;'May';6;'Jun';7;'Jul';8;'Aug';9;'Sep';10;'Oct';11;'Nov';12;'Dec';NA) day(date_col);' ')"/>

您可以在此处阅读所有字符串操作函数:1010data String Functions

一旦您确定并执行了所需的格式设置,就可以使用API​​来检索干净的数据。下面是Python 2.7中完整API调用的示例。供参考,1010data API Documentation

import urllib2
from lxml import etree

def post(url=None, body=None):
    return urllib2.urlopen(urllib2.Request(url, body, headers={'Content-Type': 'text/xml'})).read().decode('utf-8')

if __name__ == '__main__':
    url = "https://www2.1010data.com/cgi-bin/prod-stable/gw.k?protocol=xml-rpc&apiversion=3&uid=UID"
    response = post(url + "&pswd=PWD&api=login&kill=possess")
    tree = etree.fromstring(response)
    session = {}
    for child in tree:
        session[child.tag] = child.text
    sessionurl = url + "&pswd=" + session['pswd'] + "&sid=" + session['sid'] + "&api="
    query = post(sessionurl + "query",
                 "<in><name>pub.doc.retail.salesdetail</name><ops><sel value=i_=1/><willbe name=\"string_date\" value=\"splice(case(month(trans_date);1;'Jan';2;'Feb';3;'Mar';4;'Apr';5;'May';6;'Jun';7;'Jul';8;'Aug';9;'Sep';10;'Oct';11;'Nov';12;'Dec';NA) day(trans_date);' ')\"/></ops></in>")
    data = post(sessionurl + "getdata",
                "<in><cols><col>string_date</col></cols></in>")