![](/img/trans.png)
[英]How do I get my intent to call my fulfilment on DialogFlow?
[英]How do i get my visitor counter in my code to show up on the client side or how do i get my value to become an integer
我的代碼的目的是進入數據庫並將計數器的值增加 1,而當我的代碼這樣做時,我在向客戶端顯示此數據時遇到了問題。 我不能只 json.dumps 我的響應變量,因為 dynamodb 出於某種原因自動將我的值轉換為小數。 我能夠使用responseBody = json.dumps({"ID": int(response["Attributes"]["Counter"])})
打印它,但是它顯示在網頁上的 {"ID": "x"} 我只想要正在增加的 X 值,而不是其他任何東西。 有誰知道我該怎么做? 將不勝感激。 我的 python 代碼的全部內容如下。
import json
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Visitors')
Key = {"ID": {"0"}}
def lambda_handler (event, context):
response = table.update_item(
Key={
"ID": 0
},
ExpressionAttributeNames = {
"#c": "Counter"
},
UpdateExpression= "set #c = #c + :val",
ExpressionAttributeValues={
":val": 1
},
ReturnValues= "UPDATED_NEW"
)
responseBody = json.dumps({"ID": int(response["Attributes"]["Counter"])})
return {
"statusCode": 200,
"headers": {
'Access-Control-Allow-Headers': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS,POST,GET'
},
'body': (responseBody)
}
您收到{"ID": "x"}
因為這就是您要寫入正文的內容。 如果只想返回號碼,可以改成
responseBody = response["Attributes"]["Counter"]
return {
"statusCode": 200,
"headers": {
'Access-Control-Allow-Headers': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS,POST,GET'
},
'body': responseBody
}
您可能需要根據response["Attributes"]["Counter"]
返回的內容將其轉換為字符串或進行其他調整。
本質是,您得到的正是您放入body
屬性中的內容。 所以如果你不想有"ID":
在那里,就把它留在外面。
只需將 response["Attributes"]["Counter"] 作為 responseBody 值返回,然后在 return 語句中將其傳遞到 tour body 中。 如果需要,您可以在返回之前將該值更改為字符串或 integer 或任何您需要的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.