ব্যবহারের পরে cgi.parse_qs()
কীভাবে ফলাফল (অভিধান )টিকে ক্যোয়ারী স্ট্রিংয়ে ফিরিয়ে আনবেন? এর মতো কিছু খুঁজছেন urllib.urlencode()
।
ব্যবহারের পরে cgi.parse_qs()
কীভাবে ফলাফল (অভিধান )টিকে ক্যোয়ারী স্ট্রিংয়ে ফিরিয়ে আনবেন? এর মতো কিছু খুঁজছেন urllib.urlencode()
।
উত্তর:
urllib.parse.
urlencode
(ক্যোয়ারী, ডোজকিউ = মিথ্যা, [...])একটি ম্যাপিং অবজেক্ট বা দ্বি-এলিমেন্ট টিউপলগুলির ক্রম, যাতে স্ট্র বা বাইটস অবজেক্ট থাকতে পারে, শতাংশ-এনকোডেড ASCII পাঠ্য স্ট্রিংয়ে রূপান্তর করুন ।
এ dict
ম্যাপিং।
urllib.urlencode
(query
[,doseq
]) ম্যাপিং অবজেক্ট বা দ্বি-উপাদান টিপলগুলির ক্রমকে একটি "শতাংশ-এনকোডড" স্ট্রিংয়ে
রূপান্তর করুন ... অক্ষর দ্বারা পৃথক করা জোড়গুলির একটি সিরিজ ...key=value
'&'
dict
প্রত্যাবর্তিত cgi.parse_qs()
প্রকৃতপক্ষে list
এর "মান" হিসাবে রয়েছে। এগুলিকে সরাসরি পাস করার ফলে খুব বিজোড় ক্যোয়ারী স্ট্রিং আসবে।
পাইথন 3 এ, কিছুটা আলাদা:
from urllib.parse import urlencode
urlencode({'pram1': 'foo', 'param2': 'bar'})
আউটপুট: 'pram1=foo¶m2=bar'
পাইথন 2 এবং পাইথন 3 সামঞ্জস্যের জন্য, এটি ব্যবহার করে দেখুন:
try:
#python2
from urllib import urlencode
except ImportError:
#python3
from urllib.parse import urlencode
আপনি ঠিক এর মতো কিছু খুঁজছেন urllib.urlencode()
!
যাইহোক, আপনি যখন কল করবেন parse_qs()
(এর থেকে আলাদা parse_qsl()
), অভিধান কীগুলি হ'ল অনন্য ক্যোয়ারী ভেরিয়েবলের নাম এবং মান প্রতিটি নামের জন্য মানগুলির তালিকা ।
এই তথ্যটি প্রবেশ করার জন্য urllib.urlencode()
, আপনাকে অবশ্যই এই তালিকাগুলি "সমতল" করতে হবে। এখানে আপনি কীভাবে টিপলগুলির একটি তালিকা বোঝার সাথে এটি করতে পারেন:
query_pairs = [(k,v) for k,vlist in d.iteritems() for v in vlist]
urllib.urlencode(query_pairs)
doseq=True
।
আপনি এই জাতীয় কিছু খুঁজছেন হতে পারে:
def dictToQuery(d):
query = ''
for key in d.keys():
query += str(key) + '=' + str(d[key]) + "&"
return query
এটি একটি অভিধান নেয় এবং এটিকে ইউরেনকোডের মতো একটি কোয়েরি স্ট্রিংয়ে রূপান্তর করে। এটি ক্যোয়ারী স্ট্রিংয়ে একটি চূড়ান্ত "&" যুক্ত করবে, তবেreturn query[:-1]
করবে, তবে এটি যদি কোনও সমস্যা হয় তবে এটি ঠিক করে।
str.join()
এখনও দেখা করেছেন ? কীভাবে urllib.quote_plus()
?
urlencode
মধ্যে urllib.py
(এটা আপনার পাইথন দ্বারা ইনস্টল করা উচিত) কেন তৈরি করার সময় একটি কোয়েরি স্ট্রিং কখনও কখনও বেশ সহজ হিসাবে হিসাবে আপনার উত্তর বোঝা (বিশেষ করে প্রয়োজন না কিনা দেখতে হয় 'উদ্ধৃতি' নির্দিষ্ট কিছু অক্ষর আছে যা একটি বৈধ নয় URL টি)। @ ইগনাসিও দু'টি ফাংশন উল্লেখ করেছে যা আপনার বাস্তবায়ন পরিষ্কার করে এবং এটিকে সঠিক করে তুলবে।
from urllib.parse import urlencode; urlencode(your_dict)
) এর চেয়ে ছোট এবং সহজ! আমি মঞ্জুরি দেব যে চাকাটি পুনরায় উদ্ভাবন করার জন্য এটি কখনও কখনও স্মার্ট, এমনকি খুব কম সময়েই, যখন বিদ্যমান, ভাল নকশাকৃত চাকাগুলি অ্যাক্সেস করতে ব্যয়বহুল বা অসুবিধে হয়, তবে এখানে অফ-দ্য-শেল্ফ হুইলটি আপনার নিজের নিকৃষ্টতর ঘূর্ণায়মানের চেয়ে সহজ এবং দ্রুততর হয় ।
cgi.parse_qs()
হ্রাস করা হয়। পরিবর্তে urlparse.parse_qs () ব্যবহার করুন।