मुझे कुछ चर में अलग-अलग यूआरएल को सहेजना है और फिर मुझे उन्हें json.dumps का उपयोग करके एडब्ल्यूएस लैम्ब्डा फ़ंक्शन से वापस करना होगा। मैं नीचे दी गई विधि का प्रयास कर रहा हूं लेकिन यह मुझे त्रुटि दे रहा है "errorMessage": "unhashable type: 'dict'"। कोड नीचे दिया गया है।

response1 = { "statusCode": 200, "message": "Audio File uploaded successfully", "Link": some_variable1}
response2 = { "statusCode": 200, "message": "Spectrograph uploaded successfully", "Link": some_variable2}
response3 = {response1, response2}
   return {
   'statusCode': 200,
   'body': json.dumps(response3)
   }

कोई विचार यह कैसे काम कर रहा है?

1
Muhammad Arsalan Hassan 25 नवम्बर 2020, 08:54

1 उत्तर

सबसे बढ़िया उत्तर

{response1, response2} एक सेट शाब्दिक है, जिसके लिए वस्तुओं को धोने योग्य होना आवश्यक है। इस मामले में प्रतिक्रिया 1, प्रतिक्रिया 2 शब्दकोश है जो हैशबल नहीं है।

>>> a_dictionary = {"statusCode": 200}
>>> {a_dictionary}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'

सेट का उपयोग करने के बजाय, आप सूची या टपल का उपयोग कर सकते हैं जिसके लिए वस्तुओं को धोने योग्य होने की आवश्यकता नहीं होती है।

>>> [a_dictionary]
[{'statusCode': 200}]
>>> (a_dictionary,)
({'statusCode': 200},)
response3 = [response1, response2]  # list
# or
response3 = (response1, response2)  # tuple
3
falsetru 25 नवम्बर 2020, 06:00