python 3.6.3. zlib compression











up vote
1
down vote

favorite












I am trying to Compress a string in python 3.6.3 using zlib, but getting an error(TypeError: a bytes-like object is required, not 'str') , it was supposed to work on python 2.7- versions, here is my simple code:



import zlib
a='hellohellohelloheeloohegregrf'
b=zlib.compress(a)
print(b)









share|improve this question


























    up vote
    1
    down vote

    favorite












    I am trying to Compress a string in python 3.6.3 using zlib, but getting an error(TypeError: a bytes-like object is required, not 'str') , it was supposed to work on python 2.7- versions, here is my simple code:



    import zlib
    a='hellohellohelloheeloohegregrf'
    b=zlib.compress(a)
    print(b)









    share|improve this question
























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      I am trying to Compress a string in python 3.6.3 using zlib, but getting an error(TypeError: a bytes-like object is required, not 'str') , it was supposed to work on python 2.7- versions, here is my simple code:



      import zlib
      a='hellohellohelloheeloohegregrf'
      b=zlib.compress(a)
      print(b)









      share|improve this question













      I am trying to Compress a string in python 3.6.3 using zlib, but getting an error(TypeError: a bytes-like object is required, not 'str') , it was supposed to work on python 2.7- versions, here is my simple code:



      import zlib
      a='hellohellohelloheeloohegregrf'
      b=zlib.compress(a)
      print(b)






      python-3.x compression zlib






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked yesterday









      bala bharath

      144




      144
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote



          accepted










          import zlib
          a='hellohellohelloheeloohegregrf'
          b=zlib.compress(a.encode("utf-8"))
          print(b)


          Alternative:



          import zlib
          a= b'hellohellohelloheeloohegregrf'
          b=zlib.compress(a)
          print(b)


          In Python2.x this string literal is called a str object but it's stored as bytes.



          In Python3.x this string literal is a str object and its type is Unicode. So, one need to prefix it with b or use .encode to get bytes object.






          share|improve this answer























          • Thanks bro, its working now :-)
            – bala bharath
            yesterday










          • @balabharath Please accept the answer. :)
            – Chirag
            yesterday











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372006%2fpython-3-6-3-zlib-compression%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          0
          down vote



          accepted










          import zlib
          a='hellohellohelloheeloohegregrf'
          b=zlib.compress(a.encode("utf-8"))
          print(b)


          Alternative:



          import zlib
          a= b'hellohellohelloheeloohegregrf'
          b=zlib.compress(a)
          print(b)


          In Python2.x this string literal is called a str object but it's stored as bytes.



          In Python3.x this string literal is a str object and its type is Unicode. So, one need to prefix it with b or use .encode to get bytes object.






          share|improve this answer























          • Thanks bro, its working now :-)
            – bala bharath
            yesterday










          • @balabharath Please accept the answer. :)
            – Chirag
            yesterday















          up vote
          0
          down vote



          accepted










          import zlib
          a='hellohellohelloheeloohegregrf'
          b=zlib.compress(a.encode("utf-8"))
          print(b)


          Alternative:



          import zlib
          a= b'hellohellohelloheeloohegregrf'
          b=zlib.compress(a)
          print(b)


          In Python2.x this string literal is called a str object but it's stored as bytes.



          In Python3.x this string literal is a str object and its type is Unicode. So, one need to prefix it with b or use .encode to get bytes object.






          share|improve this answer























          • Thanks bro, its working now :-)
            – bala bharath
            yesterday










          • @balabharath Please accept the answer. :)
            – Chirag
            yesterday













          up vote
          0
          down vote



          accepted







          up vote
          0
          down vote



          accepted






          import zlib
          a='hellohellohelloheeloohegregrf'
          b=zlib.compress(a.encode("utf-8"))
          print(b)


          Alternative:



          import zlib
          a= b'hellohellohelloheeloohegregrf'
          b=zlib.compress(a)
          print(b)


          In Python2.x this string literal is called a str object but it's stored as bytes.



          In Python3.x this string literal is a str object and its type is Unicode. So, one need to prefix it with b or use .encode to get bytes object.






          share|improve this answer














          import zlib
          a='hellohellohelloheeloohegregrf'
          b=zlib.compress(a.encode("utf-8"))
          print(b)


          Alternative:



          import zlib
          a= b'hellohellohelloheeloohegregrf'
          b=zlib.compress(a)
          print(b)


          In Python2.x this string literal is called a str object but it's stored as bytes.



          In Python3.x this string literal is a str object and its type is Unicode. So, one need to prefix it with b or use .encode to get bytes object.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited yesterday

























          answered yesterday









          Chirag

          571210




          571210












          • Thanks bro, its working now :-)
            – bala bharath
            yesterday










          • @balabharath Please accept the answer. :)
            – Chirag
            yesterday


















          • Thanks bro, its working now :-)
            – bala bharath
            yesterday










          • @balabharath Please accept the answer. :)
            – Chirag
            yesterday
















          Thanks bro, its working now :-)
          – bala bharath
          yesterday




          Thanks bro, its working now :-)
          – bala bharath
          yesterday












          @balabharath Please accept the answer. :)
          – Chirag
          yesterday




          @balabharath Please accept the answer. :)
          – Chirag
          yesterday


















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372006%2fpython-3-6-3-zlib-compression%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

          Does disintegrating a polymorphed enemy still kill it after the 2018 errata?

          A Topological Invariant for $pi_3(U(n))$