第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用 Python 從 AWS Lambda 檢索格式正確的 JSON

如何使用 Python 從 AWS Lambda 檢索格式正確的 JSON

SMILET 2021-06-10 13:38:52
我在 AWS Lambda 中有一個(gè)函數(shù),它連接到 Twitter API 并返回與我通過(guò)事件提供的特定搜索查詢匹配的推文。該函數(shù)的簡(jiǎn)化版本如下。我使用了一些輔助函數(shù)get_secret來(lái)管理 API 密鑰,process_tweet它們限制了發(fā)回的數(shù)據(jù),并執(zhí)行諸如將創(chuàng)建日期轉(zhuǎn)換為字符串之類(lèi)的操作。最終結(jié)果是我應(yīng)該取回字典列表。def lambda_handler(event, context):    twitter_secret = get_secret("twitter")    auth = tweepy.OAuthHandler(twitter_secret['api-key'],                               twitter_secret['api-secret'])    auth.set_access_token(twitter_secret['access-key'],                          twitter_secret['access-secret'])    api = tweepy.API(auth)    cursor = tweepy.Cursor(api.search,                           q=event['search'],                           include_entities=True,                           tweet_mode='extended',                           lang='en')    tweets = list(cursor.items())    tweets = [process_tweet(t) for t in tweets if not t.retweeted]    return json.dumps({"tweets": tweets})然后在我的桌面上,我有調(diào)用 lambda 函數(shù)的代碼。aws_lambda = boto3.client('lambda', region_name="us-east-1")payload = {"search": "paint%20protection%20film filter:safe"}lambda_response = aws_lambda.invoke(FunctionName="twitter-searcher",                                    InvocationType="RequestResponse",                                    Payload=json.dumps(payload))results = lambda_response['Payload'].read()tweets = results.decode('utf-8')問(wèn)題是json.dumps在 lambda 中輸出輸出和在 Python 中讀取有效負(fù)載之間的某個(gè)地方,數(shù)據(jù)變得很糟糕。例如,一個(gè)應(yīng)該\n變成的換行符\\\\n,所有的雙引號(hào)都存儲(chǔ)為\\"并且 Unicode 字符都以 為前綴\\。所以,當(dāng)我的桌面上的 Python 接收到轉(zhuǎn)義字符時(shí),所有被轉(zhuǎn)義的東西。考慮返回的列表的這個(gè)元素(手動(dòng)格式化)。'{\\"userid\\": 190764134,  \\"username\\": \\"CapitalGMC\\",  \\"created\\": \\"2018-09-02 15:00:00\\",  \\"tweetid\\": 1036267504673337344,  \\"text\\": \\"Protect your vehicle\'s paint! Find out how on this week\'s blog.              \\\\ud83d\\\\udc47\\\\n\\\\nhttps://url/XYMxPhVhdH https://url/mFL2Zv8nWW\\"}'我可以使用正則表達(dá)式來(lái)解決一些問(wèn)題(\\"和\\\\n),但 Unicode 很棘手,因?yàn)榧词刮移ヅ渌胰绾斡谜_轉(zhuǎn)義的字符替換它?當(dāng)我在 R 中使用該aws.lambda包執(zhí)行此操作時(shí),一切都很好,沒(méi)有奇怪的轉(zhuǎn)義符。我在桌面上做錯(cuò)了什么 AWS Lambda 的響應(yīng)會(huì)導(dǎo)致數(shù)據(jù)亂碼?
查看完整描述

2 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

在您的 lambda 函數(shù)中,您應(yīng)該在響應(yīng)正文中返回一個(gè)帶有 JSON 對(duì)象的響應(yīng)對(duì)象。


# Lambda Function

def get_json(event, context):

    """Retrieve JSON from server."""

    # Business Logic Goes Here.

    response = {

        "statusCode": 200,

        "headers": {},

        "body": json.dumps({

            "message": "This is the message in a JSON object."

        })

    }

    return response


查看完整回答
反對(duì) 回復(fù) 2021-06-16
?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

不要使用 json.dumps()

我有一個(gè)類(lèi)似的問(wèn)題,當(dāng)我剛剛返回 "body": content 而不是 "body": json.dumps(content) 時(shí),我可以輕松訪問(wèn)和操作我的數(shù)據(jù)。在此之前,我得到了一個(gè)看起來(lái)像 JSON 的奇怪形式,但它不是。


查看完整回答
反對(duì) 回復(fù) 2021-06-16
  • 2 回答
  • 0 關(guān)注
  • 292 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)