zoukankan      html  css  js  c++  java
  • Encode query with Python

    Encode query with Python - WABI

        Encode query with Python
        From WABI
        Jump to: navigation, search

        Contents

        [hide]

            1 Summary
            2 Description
            3 Sample program
            4 Link


        Summary

        Result may not be able to be retrieved normally, if query including non alphanumeric character is used with Python.

        Description

        You have to encode your query. If qPath is a query to be encoded, please do as follows.

        import urllib
        urllib.urlencode({'<parameter_name>':qPath,})

        Sample program

        This tutorial introduces a example that retrieve entries which feature-key is 'rRNA', qualifier name is 'product' and has '16s ribosomal RNA' in qualifier value with searchByXMLPath of ARSA.

        Download this program

        import socket
        import urllib

        #set server
        host = "xml.nig.ac.jp"
        port =  80

        #set API server
        url = "/rest/Invoke"

        qPath = "/ENTRY/DDBJ/feature-table/feature/f_key=='rRNA' AND "
        qPath = qPath + "(/ENTRY/DDBJ/feature-table/feature{/f_key=='rRNA' AND "
        qPath = qPath + "/f_quals/qualifier{/q_name=='product' AND /q_value='16S ribosomal RNA'}}) "
        rPath = "/ENTRY/DDBJ/primary-accession,/ENTRY/DDBJ/definition"

        offset = "1";
        count = "10";

        query = urllib.urlencode({'queryPath':qPath,'returnPath':rPath,'offset':offset,'count':count});

        #set parameter
        query = "service=ARSA&method=searchByXMLPath&"+ query;
        #make connection
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        try:
            sock.connect((host, port))
            sock.send("POST " + url + " HTTP/1.0\n")
            sock.send("Content-Type: application/x-www-form-urlencoded\n")
            sock.send("User-Agent: python/socket\n")
            sock.send("Content-Length:" + `len(query)` + "\n\n")
            sock.send(query)
        except socket.error, e:
            print 'Error: %s' % e

        while 1:
            rcvmsg = sock.recv(1024)
            print rcvmsg,
            if rcvmsg == :
                break
        sock.close

  • 相关阅读:
    JS中原型对象中的constructor的作用?
    ES Module,commonjs和Typescript模块系统
    webpack中的hash、chunkhash和contenthash
    react-spring介绍(翻译)
    Typescript中的对象多可能类型推导的解决办法
    博客定制样式和脚本代码
    React和Vue对比
    CSS动画属性/重绘重排组合层/GPU加速 渲染优化相关及联系
    Object.create()探索
    await的错误处理问题,一个issue引发的ts社区的讨论
  • 原文地址:https://www.cnblogs.com/lexus/p/2405379.html
Copyright © 2011-2022 走看看