एक स्ट्रिंग पहले से ही 'डीकोड' है की तरह लग रहा बार आ रही है, इस प्रकार वर्ग नहीं 'डिकोड' function.Thus है:
AttributeError: type object 'str' has no attribute 'decode'
आप एक बाइट सरणी को डिकोड और यह एक स्ट्रिंग कॉल में बदल करना चाहते हैं:
the_thing.decode(encoding)
आप एक स्ट्रिंग (यह एक बाइट सरणी में बदल जाते हैं) सांकेतिक शब्दों में बदलना चाहते हैं फोन:
the_string.encode(encoding)
आधार 64 सामान के संदर्भ में: पैदावार ऊपर एन्कोडिंग के लिए मूल्य के रूप में 'बेस 64' का उपयोग करना त्रुटि:
LookupError: unknown encoding: base64
ओपन सांत्वना और निम्नलिखित में प्रकार:
import base64
help(base64)
आप देखेंगे कि बेस 64 में दो बहुत आसान काम हैं, अर्थात् b64decode और b64encode। बी 64 डीकोड एक बाइट सरणी देता है और b64encode को बाइट्स सरणी की आवश्यकता होती है।
स्ट्रिंग को इसके बेस 64 प्रतिनिधित्व में बदलने के लिए आपको पहले इसे बाइट्स में परिवर्तित करने की आवश्यकता है। मुझे यूटीएफ -8 पसंद है लेकिन आपको जो भी एन्कोडिंग चाहिए, उसका उपयोग करें ...
import base64
def stringToBase64(s):
return base64.b64encode(s.encode('utf-8'))
def base64ToString(b):
return base64.b64decode(b).decode('utf-8')
चूंकि पायथन -3 में यूनिकोड स्ट्रिंग है, बाइट्स डेटाटाइप पेश किया गया था। आपको अपनी स्ट्रिंग को बाइटियर में बदलना होगा, उदा। 'बी = बाइट्स (mystring, 'utf-8') 'का उपयोग करके, और उसके बाद एन्कोडिंग के लिए' b' का उपयोग करके: 'EncodedString = base64.b64encode (b)', जो एक बाइटरेरे वापस करेगा –