V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kayseen
V2EX  ›  Python

阿里的官方 Python 文档控制 lot 设备,迷..

  •  
  •   kayseen · 2019-09-10 22:14:32 +08:00 · 6713 次点击
    这是一个创建于 1892 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如下代码是控制物联网设备的一个官方文档,我实在是在各处都找不到from com.aliyun.api.gateway.sdk import这三个导入的包是怎么安装的...已经安装了 aliyun 的 python 的 sdk 也不行,有做过的吗请教下...

    import uuid
    import json
    from com.aliyun.api.gateway.sdk import client
    from com.aliyun.api.gateway.sdk.http import request
    from com.aliyun.api.gateway.sdk.common import constant
    
    host = "https://api.link.aliyun.com"
    url = "/thing/properties/set"
    
    cli = client.DefaultClient(app_key="你的<AppKey>", app_secret="你的<AppSecret>")
    
    #post form
    
    req_post = request.Request(host=host, protocol=constant.HTTP, url=url, method="POST", time_out=30000)
    bodyMap = {
      'id': str(uuid.uuid4()),
      'version': "1.0",
      'request': {
          'iotToken': "xxxx",
          'apiVer': "1.0.5"
      },
      'params': {
          #接口参数
          'iotId':"value1",
          'items':"value2",
          'userId':"value3",
          'userType':"value4",
          'origin':"value5",
          'productKey':"value6",
          'deviceName':"value7"
      }
    }
    
    headers = {
      'accept': 'application/json'
    }
    
    req_post.set_body(bodyMap)
    req_post.set_headers(headers)
    req_post.set_content_type(constant.CONTENT_TYPE_JSON)
    print cli.execute(req_post)
    
    24 条回复    2019-09-11 13:55:08 +08:00
    guiqiqi
        1
    guiqiqi  
       2019-09-10 22:21:01 +08:00 via iPhone
    我怎么觉得是从 java 粘贴过来的,python 少见有用 com 做的包名呐……
    kayseen
        2
    kayseen  
    OP
       2019-09-10 22:24:52 +08:00
    @guiqiqi 额 搞不懂,但是看他这个 Python 代码好像还是 python2 的,但是我现在连他的包都装不起来...
    watsy0007
        3
    watsy0007  
       2019-09-10 22:55:31 +08:00
    文档地址发出来看下. 或者 github 地址发出来.
    Kilerd
        4
    Kilerd  
       2019-09-10 22:59:58 +08:00   ❤️ 2
    这段代码怎么有股咖喱味。。。啊。不,是 java 味。
    nieyujiang
        5
    nieyujiang  
       2019-09-10 23:29:47 +08:00
    lolizeppelin
        6
    lolizeppelin  
       2019-09-10 23:35:28 +08:00 via Android
    哈哈哈 咖喱味
    janxin
        7
    janxin  
       2019-09-10 23:54:00 +08:00 via iPad
    @Kilerd 咖灰味
    Hopetree
        8
    Hopetree  
       2019-09-11 00:26:05 +08:00
    既然能引用肯定有包吧,看看是不是环境变量 path 里面需要添加包路径
    Trim21
        9
    Trim21  
       2019-09-11 02:12:53 +08:00 via iPhone
    这包名起的也是很可以了…
    nuistzhou
        10
    nuistzhou  
       2019-09-11 04:40:18 +08:00 via iPhone
    说实话,这文档写的真不咋滴
    default7
        11
    default7  
       2019-09-11 08:26:48 +08:00
    这个是放到哪里去运行呢?
    kayseen
        12
    kayseen  
    OP
       2019-09-11 08:31:23 +08:00 via Android
    @default7 这就已经可以直接运行的,就是发送请求,但是阿里云的包装不上。。所以就运行不起来
    kayseen
        13
    kayseen  
    OP
       2019-09-11 08:32:12 +08:00 via Android
    @nieyujiang
    你好,请问那几个从 com 导包的路径找不到,是需要先安装什么吗?
    caqiko
        14
    caqiko  
       2019-09-11 08:39:50 +08:00 via Android
    @kayseen #13 com 文件夹复制到你的.py 同级目录
    nieyujiang
        15
    nieyujiang  
       2019-09-11 09:00:10 +08:00 via iPhone
    @kayseen #13 仔细看他的 demo
    kayseen
        16
    kayseen  
    OP
       2019-09-11 09:13:17 +08:00
    @nieyujiang
    @caqiko
    了解了,感谢~
    jy02201949
        17
    jy02201949  
       2019-09-11 09:25:04 +08:00
    阿里的文档有时候是看着挺迷的
    kayseen
        18
    kayseen  
    OP
       2019-09-11 09:41:21 +08:00
    @nieyujiang 我现在看阿里他们的文档,好多入参什么的都没有解释..
    然后就是,比如说我要控制一个阿里的板子的开关,是不是可以使用 https://dev.iot.aliyun.com/iotstudio/api_center?spm=a2c56.pc_iot_community_api_center.0.0.667a520652w076&serviceId=716 这个页面上的触发物的模型属性或者是使用其他的什么服务?而且入参的话,我控制开关应该入什么参数啊...麻烦了
    nieyujiang
        19
    nieyujiang  
       2019-09-11 10:17:09 +08:00 via iPhone
    @kayseen #18 不知道,我只是睡不着随手搜索就找到了
    kayseen
        20
    kayseen  
    OP
       2019-09-11 11:36:28 +08:00
    @nieyujiang 好的,谢谢哈
    todd7zhang
        21
    todd7zhang  
       2019-09-11 11:48:00 +08:00
    ```python
    com/aliyun/api/gateway/sdk/http/request.py

    def get_protocol(self):
    return self.__protocol

    def set_protocol(self, protocol):
    self.__protocol = protocol

    def get_method(self):
    return self.__method

    def set_method(self, method):
    self.__method = method

    def get_host(self):
    return self.__host

    def set_host(self, host):
    self.__host = host
    ```

    真一股 java 味...
    hurrytospring
        22
    hurrytospring  
       2019-09-11 13:30:07 +08:00
    @todd7zhang 说不定就是 java 转译的
    Phariel
        23
    Phariel  
       2019-09-11 13:47:21 +08:00
    Ali 多是 Java 栈的 开发风格从 Java 沿袭过来也并不奇怪
    skinny
        24
    skinny  
       2019-09-11 13:55:08 +08:00
    用代码生成器从 Java 代码转的?或者人工转写的?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5286 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:46 · PVG 11:46 · LAX 19:46 · JFK 22:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.