小编Dar*_*rko的帖子

如何从AWS Lambda函数查询第三方JSON API

我正在为新的亚马逊ECHO工作"技能".该技能将允许用户向Alexa询问有关Enphase太阳系的状态和性能的信息.Alexa将回应从基于JSON的Enphase API中提取的结果.例如,用户可以问,

 "Alexa.  Ask Enphase how much solar energy I have produced in the last week."
 ALEXA <"Your array has produced 152kWh in the last week.">
Run Code Online (Sandbox Code Playgroud)

问题是我用JavaScript编程已经多年了,这是我第一次使用AWS Lambda.我没有非常成功地找到有关如何将JSON查询嵌入AWS Lambda函数中的第三方服务器的任何信息.以下是我的Lambda函数中相关的代码部分:

 /**
  * Gets power from Enphase API and prepares speach
  */
 function GetPowerFromEnphase(intent, session, callback) {
      var Power = 0;
      var repromptText = null;
      var sessionAttributes = {};
      var shouldEndSession = false;
      var speechOutput = "";

      //////////////////////////////////////////////////////////////////////
      // Need code here for sending JSON query to Enphase server to get power …
Run Code Online (Sandbox Code Playgroud)

json http amazon-web-services aws-lambda amazon-echo

10
推荐指数
1
解决办法
2万
查看次数

Python:围绕整个模块尝试/除外

我有一个包含函数和一些类的 python 模块。这个模块基本上被我的几个同事用作工具集。

我想建立一种错误报告系统,只要有人生成我不处理的异常,就会发送一封包含异常信息的电子邮件。通过这种方式,我可以不断改进我的代码的健壮性和我自己的错误消息的帮助性。最好的方法是在整个模块周围放置一个 try/except 块吗?

python exception try-catch

6
推荐指数
1
解决办法
3026
查看次数

在Python中将字符串格式化为常量长度

可以说我有几个字符串标题:

title0 = 'USA'
title1 = 'Canada'
Run Code Online (Sandbox Code Playgroud)

我想在这些标题的正面和背面附加一个'#'字符列表,以便给它们一个恒定的长度,所以它们看起来像:

######## USA ########
####### Canada ######
Run Code Online (Sandbox Code Playgroud)

使用1个空格缓冲文本的开头和结尾.显然,我不能总是在单词周围得到对称数量的符号.有没有办法用内置的Python字符串格式来做到这一点?

python string format

2
推荐指数
1
解决办法
485
查看次数

相等的加法属性对浮点数有效吗?

也就是说,如果我有两个浮点数(IEEE-754二进制浮点数)a和b,我计算c如下:

c = a - b
Run Code Online (Sandbox Code Playgroud)

这总是真的吗?

c + b == a
Run Code Online (Sandbox Code Playgroud)

这个简单问题的答案出奇地难以在互联网上找到答案。我找到的最接近的东西是这篇论文。也许我只是没有使用正确的术语。

floating-point precision algebra

2
推荐指数
1
解决办法
52
查看次数

使用Python分成多行来限制字符串宽度

我正在使用python生成用于编程的测试文件.在这个文件中,我有几个自动生成的注释.问题是,这些注释中的一些可能会很长,如果一行太长,读取该文件的软件会产生错误.

我正在寻找的是一种用'\n#'打破字符串的方法.这些换行符的位置应限制任何一行的宽度小于某个宽度.以下是我想要做的一个例子.我需要从"long_line"生成"broken_line"的代码.

long_line = "# alpha || bravo || charlie || delta || echo are the first 5 elements of NATO"

broken_line = "# alpha || bravo || charlie ||\n# delta || echo are the first \n# 5 elements of NATO"


>>>print long_line
# alpha || bravo || charlie || delta || echo are the first 5 elements of NATO

>>>print broken_line
# alpha || bravo || charlie ||
# delta || echo are the first
# 5 elements of …
Run Code Online (Sandbox Code Playgroud)

python string formatting

1
推荐指数
1
解决办法
914
查看次数

检查Python类中必需参数的最佳方法

我有一个可以用不同的参数组合构建的类,但我有一个必需的参数列表.这是我目前检查的方式:

    # check for the required arguments
    rqrd_args = ['a', 'b', 'c']  # required arguments
    mssing_args = set(rqrd_args)-set(kwargs.keys())
    if mssing_args:
        error_lines = ['The following required arguments are missing:']
        error_lines.extend(['\t%s'%x for x in mssing_args])
        sys.exit('\n'.join(error_lines))

    # pull from kwargs
    self.a = kwargs['a']
    self.b = kwargs['b']
    self.c = kwargs['c']
Run Code Online (Sandbox Code Playgroud)

我倾向于重复使用这段代码.我的问题是,我可以以某种方式用循环来替换"#pull from kwargs"部分,该循环遍历所需的参数列表,这样代码更通用吗?我有什么理由不想这样做吗?

python arguments class kwargs

1
推荐指数
1
解决办法
1090
查看次数

将新值附加到python列表

可以说我有两个列表:

x = [1,2,3,4]
y = [1,4,7,8]
Run Code Online (Sandbox Code Playgroud)

我想在x中附加x中尚未包含的任何值.我可以通过循环轻松完成此操作:

for value in y:
    if value not in x:
        x.append(value)
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更多的Pythonic方式.

python list find

0
推荐指数
1
解决办法
66
查看次数