小编sln*_*d54的帖子

名称'Key'未定义Lambda函数以访问DynamoDB

我在Python中使用boto3库中的查询函数并收到以下错误:

name 'Key' is not defined: NameError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 51, in lambda_handler
if not getAssetExistance(slack_userID):
File "/var/task/lambda_function.py", line 23, in getAssetExistance
response = dynamoTable.query(KeyConditionExpression=Key('userID').eq(asset))
NameError: name 'Key' is not defined
Run Code Online (Sandbox Code Playgroud)

我一直在阅读有关通过Lambda访问DynamoDB的一系列教程,并且在尝试密钥存在时,他们都使用此KeyConditionExpression行.

这是相关代码(第23行是查询行):

def getAssetExistance(asset):
    dynamoTable = dynamo.Table('Assets')
    response    = dynamoTable.query(KeyConditionExpression=Key('userID').eq(asset))

    return bool(response)
Run Code Online (Sandbox Code Playgroud)

我基本上想检查我的DynamoDB表中的主分区键(这是一个松弛的用户ID),看看是否存在.

如果相关,则以下是其余代码:

################################
# Slack Lambda handler.
################################

import boto3
import logging
import os
import urllib

# Grab data from the environment.
BOT_TOKEN   = os.environ["BOT_TOKEN"]
ASSET_TABLE = os.environ["ASSET_TABLE"]
REGION_NAME = os.getenv('REGION_NAME', 'us-east-1') …
Run Code Online (Sandbox Code Playgroud)

python-3.x amazon-dynamodb slack-api aws-lambda

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

Excel VBA将XML文件读入字符串时会出现字符

我目前正在使用以下代码将XML文件读入字符串:

'Target Path
sFileName = ThisWorkbook.Path & "\Assembly\Alarms.xml"
iFileNum = FreeFile

'Open File
Open sFileName For Input As iFileNum

'Read Text
Do Until EOF(iFileNum)
    Line Input #iFileNum, sBuf
    sTemp = sTemp & sBuf & vbCrLf
Loop

'Close File
Close iFileNum
Run Code Online (Sandbox Code Playgroud)

我在执行此操作时遇到的问题是字符串的大小限制.如果我打印sTemp并选择它,我会得到32,767个字符.

我将它推入一个字符串,以便我可以在特定的行项目上执行查找/替换.是否有另一种(更好的)方法从我的XML读取并查找/替换而不会遇到此问题?任何建议,将不胜感激.

<?xml version="1.0" encoding="UTF-8"?>
<alarms version="1.0" product="{E44CB020-C21D-11D3-8A3F-0010A4EF3494}" id="Alarms">
    <alarm history-size="10000" display-name="[ALARM]" hold-time="250" max-update-rate="1.00" embedded-server-update-rate="1.00" silence-tag="" remote-silence-exp="" remote-ack-all-exp="" status-reset-tag="" remote-status-reset-exp="" close-display-tag="" remote-close-display-exp="" use-alarm-identifier="false">
        <triggers>
            <trigger id="T1" type="bit" ack-all-value="999" use-ack-all="true" ack-tag="{[##PLCNAME]PVAlmAckCmd[0]}" exp="{[##PLCNAME]PVArrayAlarm[0],L1}" message-tag="" message-handshake-exp="" message-notification-tag="" …
Run Code Online (Sandbox Code Playgroud)

xml excel vba

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

Python 3.6 Split() 没有足够的值来解压解决方法?

当我尝试拆分单个单词时,我一直在 Python 中遇到错误。从我读到的,这是因为默认的 split() 命令查找空格。问题是,我希望第二个分配的变量(在这种情况下为资产)不返回任何内容或返回空值。这就是我正在使用的:

slack_text.startswith("!help"):
command, asset = slack_text.split() 
    if asset != "":
        if asset == "commandlist":
            slack_reply = "Available Commands: !addme, !getBalance, !buy <asset> <quantity>"
        elif asset == "ships":
            slack_reply = getAllShips()
        elif asset == "buildings":
            slack_reply = getAllBuildings()
        elif shipExists(asset):
                        slack_reply = getShip(asset)
        elif buildingExists(asset):
             slack_reply = getBuilding(asset)
        else:
             slack_reply = "Not a valid asset."
    else:
        slack_reply = "Available help modifiers are: commandlist, <ship_name>, <building_name>. (!help <modifier>)"
Run Code Online (Sandbox Code Playgroud)

因此,使用此代码,我可以在 Slack 中键入 '!help ship' 并且没有错误并返回 getAllShips() 函数。但是如果我简单地输入 '!help',Python 就会抛出一个错误。 …

python python-3.x

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

标签 统计

python-3.x ×2

amazon-dynamodb ×1

aws-lambda ×1

excel ×1

python ×1

slack-api ×1

vba ×1

xml ×1