【问题标题】:Python AWS Lambda Function ""errorMessage": "'function' object has no attribute 'loads'"Python AWS Lambda 函数 ""errorMessage": "'function' object has no attribute 'loads'"
【发布时间】:2023-03-27 16:46:01
【问题描述】:

我收到 "errorMessage": "'function' object has no attribute 'loads'" 但加载是 urllib3 的一部分。另外,如果您对如何更好地编写此内容有任何建议,请告诉我。

import os
import json
import urllib3
import boto3

def lambda_handler(event, context):
    
    def json(get_data):
        s3 = boto3.client('s3')
        with open("FILE_NAME.json", "rb") as f:
            s3.upload_fileobj(get_data,f, "<bucket_name", None)
    
    class GetToken:
        def __init__(self, API_TOKEN, URL, MY_HEADERS):
            self.token = API_TOKEN
            self.url = URL
            self.headers = MY_HEADERS
        def data(self):
            http = urllib3.PoolManager()
            response = http.request('GET', self.url, headers=self.headers)
            if(response.status == 200):
                get_json = json.loads(response.data.decode('utf-8'))
            elif(response.status !=200):
                print("Result not found")
            return get_json

    def members():
        access_results = access()
        base_token = access_results[0]
        base_url = access_results[1]
        base_headers = access_results[2]
        member_url = base_url + 'members'
        post_parameters = GetToken(base_token,member_url,base_headers)
        members_json = post_parameters.data()
        return json(members_json)

    def access():
        clubhouse_token = os.environ.get('CLUBHOUSE_API_TOKEN')
        clubhouse_url = 'https://api.clubhouse.io/api/v3/'
        my_headers = {'Clubhouse-Token': clubhouse_token, 'Content-Type': 'application/json'}
        return clubhouse_token,clubhouse_url,my_headers
    
    return members()

【问题讨论】:

    标签: python python-3.x amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    尽管有一个全局 import json,但在闭包范围内也有一个 def json(嵌套函数)

    python 中的查找是 Locals、Closure、Globals、Builtins ——因此闭包范围的函数具有更高的优先级

    将本地 def json 重命名为其他名称,它应该可以解决您的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2022-11-20
      • 2022-12-01
      • 2018-02-05
      • 2022-09-28
      相关资源
      最近更新 更多