从Python到Dynamodb的AWS Gateway API发布

时间:2018-06-01 10:52:00

标签: python amazon-web-services amazon-dynamodb

我从Python向Amazon Gateway API发布了一个简单的JSON结构。

这是JSON结构:

root@e02e2074fb6b:/var/lib/mysql-files/datahub/import/test/products/kaw# stat 
deactivated_product_merged_bub.csv 
  File: 'deactivated_product_merged_bub.csv'
  Size: 378         Blocks: 8          IO Block: 4194304 regular file
Device: 4fh/79d Inode: 4112125     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-06-01 09:23:38.000000000 +0000
Modify: 2018-06-01 06:47:44.000000000 +0000
Change: 2018-06-01 09:04:53.000000000 +0000
  Birth: -

这是python代码:

stat
  • r.status_code以' 200'
  • 的形式返回
  • r.reason以' Ok'
  • 的形式返回
  • r.text返回为 {" __ type":" com.amazon.coral.validate#ValidationException"," message":&# 34;一个或多个参数值无效:AttributeValue可能不包含空字符串"}

参数显然不是空的,所以我不确定为什么我会收到这个错误。我在Integration Request中有一个Body Mapping Template,如下所示:

$ stat deactivated_product_merged_bub.csv
  File: 'deactivated_product_merged_bub.csv'
  Size: 378         Blocks: 8          IO Block: 4194304 regular file
Device: 4fh/79d Inode: 4112125     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (  999/   mysql)   Gid: (  999/   mysql)
Access: 2018-06-01 09:32:25.000000000 +0000
Modify: 2018-06-01 06:47:44.000000000 +0000
Change: 2018-06-01 09:04:53.000000000 +0000
  Birth: -

当我从AWS Gateway API控制台中运行测试时,数据输入到DynamoDB就好了。但是,它不能用Python工作。知道我可能做错了吗?我认为这是一个愚蠢的错误。谢谢。

1 个答案:

答案 0 :(得分:0)

您可能需要创建JSON有效内容数据的字符串格式。 试试这个:

payload=json.dumps({
    'ping': '1.967',
    'download': '570.01',
    'upload': '697.85',
    'timestamp': '1527845073'
})