PDA

View Full Version : مشکل در واکشی دیکشنری



RAMA2009
سه شنبه 15 شهریور 1401, 16:33 عصر
سلام
من این کدهارو دارم:




def write_to_file(data):
with open('database.txt', mode='a') as database:
email = data["email"]
subject = data["subject"]
message = data["message"]
file = database.write(f'\n{email},{subject},{message}')
@app.route('/submit_form', methods=['POST', 'GET'])
def submit_form():
if request.method == 'POST':
data = request.form.to_dict
write_to_file(data)
#print(f'type of data is: {type(data)}')
print(data)
return redirect('/thankyou.html')
else:
return 'err'


این کد باید کار کنه اما این اررو میده:


> TypeError: 'method' object is not subscriptable


و در فایل اینو برام مینوسه:


> <bound method MultiDict.to_dict of ImmutableMultiDict([('email', 'ex@ex.com'), ('subject', 'ex'), ('message', 'ex')])>


وقتی نوع متغیر data رو برمیگردونم اینو نشون میده:
> <class 'method'>

وقتی محتویات متغیر data رو چاپ میکنم اینو نشون میده:
> {'email': 'ex@ex.com', 'subject': 'ex', 'message': 'ex'}
ex مقادیری هست ک خودم دادم.

اما به این محتویات نمیتونم دسترسی داشته باشم


وقتی براکت رو به پرانتز تغییر میدم :



email = data("email")
subject = data("subject")
message = data("message")



کار میکنه اما به ازای هر المنت کل مقادیر دیکشنری رو چاپ میکنه:
> {'email': 'ex@ex.com', 'subject': 'ex', 'message': 'ex'},{'email': 'ex@ex.com', 'subject': 'ex', 'message': 'ex'},{'email': 'ex@ex.com', 'subject': 'ex', 'message': 'ex'}

لطفا راهنمایی کنید

6character
چهارشنبه 16 شهریور 1401, 14:00 عصر
ببین راه حلو خودت گفتی
براکت --> پرانتز
استفاده از <regex> در Output
تنظیم کن که براکت و استرینگ رو پاک کنه