chaîne Python en octets

Vous devez fournir une chaaîne à la bibliothèque re si vous souhaitez manipuler un objet à l’aide d’un modèle de chaaîne. Si vous essayez d’utiliser un modèle de chaaîne sur un objet qui est stocké à l’aide des "octets‚" type de données, vous rencontrerez la "TypeError : impossible d’utiliser un modèle de chaaîne sur un objet de type octets‚" error.

Ce guide explique ce que signifie cette erreur et pourquoi vous pouvez la rencontrer. Nous allons vous présenter un exemple de cette erreur afin que vous puissiez voir les étapes à suivre pour résoudre l’erreur.

TypeError : impossible d’utiliser un modèle de chaaîne sur un objet de type octets

Les objets Octets contiennent une séquence d’octets simples. Ils sont immuables, comme les chaaînes, ce qui signifie qu’ils ne peuvent pas être modifiés. Un objet bytes est généralement renvoyé lorsque vous lisez un fichier binaire ou lorsque vous utilisez une bibliothèque telle que "request‚" pour récupérer des données d’un site Web.

Lorsque vous utilisez la bibliothèque re, vous devez travailler soit avec des octets, soit avec des objets. Vous ne pouvez pas spécifier de modèles de chaaîne pour un objet d’octets, et vice versa.

Si vous travaillez avec des données d’octets, votre programme doit spécifier un modèle d’expression régulière en octets. Si vous utilisez des expressions régulières avec des chaaînes, fournissez un modèle d’expression régulière basé sur des chaaînes.

Un exemple de scénario

Nous allons écrire un programme qui récupère le titre d’une page Web. Nous travaillons avec le site Python.Engineering pour ce tutoriel.

Pour commencer, importe les deux bibliothèques dont nous aurons besoin pour construire notre programme : urllib et re.

La bibliothèque urllib nous permet de faire des requêtes Web et la bibliothèque re nous donne la possibilité d’utiliser regex dans notre programme.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Ensuite, nous faisons un demande Web à la page d’accueil de Python.Engineering :

Le programme récupère le contenu de la page d’accueil de Python.Engineering. Ces données sont lues à l’aide de la méthode read() qui fait partie de la méthode urlopen(). Nous stockons ces données dans la "res‚" variable.

Maintenant que nous avons les données de notre programme, utilisez la méthode search() pour connaaître le contenu de la balise sur la page Web que nous avons interrogée. La balise contient le titre d’une page Web.<br></p> <p>Pour trouver le titre de la page Web, utilisez la méthode <code>re.search()</code> :<br></p > <p>Notre programme recherchera le contenu de la balise <title>. Notre programme imprime ensuite le titre de la page Web sur la console. Nous utilisons la <a href="/python-f-string/">méthode .format()</a> pour ajouter ce titre dans notre chaaîne. <br></p> <p>Exécutons notre programme et voyons s’il fonctionne :<br></p> <p>Notre programme ne s’exécute pas complètement.</p><p>La valeur de "home‚" (la réponse de notre page Web) est un objet d’octets, mais le modèle que nous utilisons pour trouver le titre d’une page Web est une chaaîne. Cela provoque une erreur car nous ne pouvons pas faire correspondre les modèles de chaaîne avec les objets octets.<br></p> <p>Il existe deux manières de résoudre ce problème.</p> <h3>Solution 1 : Convertir le modèle de chaaîne en octets ;</h3> <p>Nous devons convertir le modèle de chaaîne que nous utilisons en un objet bytes. Nous pouvons le faire en utilisant soit le "b‚" mot-clé ou la méthode <code>bytes()</code> :<br></p> <p>La première méthode d’utilisation du "b‚" mot-clé est plus courant car il est plus facile à lire. Maintenant que nous avons converti notre modèle de chaaîne en octets, nous pouvons exécuter notre code :<br></p> <p>Notre code renvoie le texte qui correspond à notre requête.<br> </p> </a></div><p>Maintenant que nous avons la réponse regex, nous pouvons l’analyser afin qu’elle apparaisse simplement comme une chaaîne dans notre code. L’analyse des données regex sort du cadre de ce didacticiel. </p> <h3>Solution n¬∞2 : décoder les données de la page Web</h3> <p>Alternativement, nous pourrions choisir de décoder les données de notre page Web pour en faire une chaaîne. Ceci est utile si vous attendez une chaaîne pour d’autres parties de votre code pour fonctionner.<br></p> <p>Nous pouvons décoder les données de notre page Web en modifiant la ligne de code o√π nous ouvrons la page Web :<br></p> <p>Ce code décodera la réponse de notre requête Web afin que nous puissions traiter la réponse comme une chaaîne. Vous devez remplacer "utf-8‚" par la méthode de e ncoder la page Web que vous demandez utilise.<br></p> <p>Nous pouvons ensuite utiliser un modèle de chaaîne pour rechercher la balise de titre. Il n’est pas nécessaire de convertir notre modèle en objet bytes car "home‚" sera une valeur de chaaîne.</p> <p>Exécutons notre code et voyons ce qui se passe : <br></p><p>"Carrière Karma est entrée dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à suivre un bootcamp. Deux mois après l’obtention de mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et objectifs dans la vie !"</p> <p class="testimonial-section-faint-1">Venus, ingénieur logiciel chez Rockbot</p> <p>La "TypeError : ne peut pas utiliser un modèle de chaaîne sur un octet -comme un objet " une erreur est générée lorsque vous essayez de faire correspondre un modèle de chaaîne à un objet stocké à l’aide du type de données bytes.<br></p> <p>Vous pouvez corriger cette erreur soit en convertissant votre modèle de chaaîne en objet bytes, soit en convertissant les données avec lesquelles vous travaillez en un objet chaaîne.<br></p> </a></div><p>Vous êtes maintenant prêt à corriger cette <a href="/how-long-to-learn-python/">erreur Python comme un pro</a> !</p> </div> </div> <div class="article__right"> <div class="hub_ad"> <div id="ezoic-pub-ad-placeholder-106"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9381065361874746" crossorigin="anonymous"></script> <!-- PYE aside NEW --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9381065361874746" data-ad-slot="8755532771" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="shop-aside shop-aside--mt"> <h2 class="shop-aside__title">Shop</h2> <div class="shop__items shop__items--column"> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/learn-programming-in-r-courses/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Learn programming in R: courses</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-python-online-courses-for-2022/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Best Python online courses for 2022</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-laptop-for-fortnite/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Best laptop for Fortnite</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-laptop-for-excel/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Best laptop for Excel</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-laptop-for-solidworks/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Best laptop for Solidworks</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-laptop-for-roblox/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Best laptop for Roblox</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-computer-for-crypto-mining/"></a><img class="shop__item-img" src=""> <p class="shop__item-name">Best computer for crypto mining</p><span class="shop__item-price">$</span> </div> <div class="shop__item"><a class="shop__item-link" href="https://python.engineering/best-laptop-for-sims-4/"></a><img class="shop__item-img" src="http://python.engineering/wp-content/uploads/2022/04/pye-best-laptop-for-sims-4.jpg"> <p class="shop__item-name">Best laptop for Sims 4</p><span class="shop__item-price">$</span> </div> </div> </div> <div class="hub_ad"> <div id="ezoic-pub-ad-placeholder-106" style="position:sticky; position:-webkit-sticky; top:0; margin-top:10px; z-index: 1000"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9381065361874746" crossorigin="anonymous"></script> <!-- PYE aside NEW --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9381065361874746" data-ad-slot="8755532771" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="l-questions l-questions--mt"> <p class="l-questions__title">Latest questions</p> <div class="l-questions__list"> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/8134602-psycopg2-insert-multiple-rows-with-one-query/"></a> <div class="l-questions__item-tags"><span class="l-questions__item-tag violet">NUMPY</span><span class="l-questions__item-tag yellow">NUMPY</span></div> <p class="l-questions__item-title">psycopg2: insert multiple rows with one query</p> <p class="l-questions__item-answers"><span>12</span> answers</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/3930188-how-to-convert-nonetype-to-int-or-string/"></a> <div class="l-questions__item-tags"><span class="l-questions__item-tag violet">NUMPY</span><span class="l-questions__item-tag yellow">NUMPY</span></div> <p class="l-questions__item-title">How to convert Nonetype to int or string?</p> <p class="l-questions__item-answers"><span>12</span> answers</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/33945261-how-to-specify-multiple-return-types-using-type-hints/"></a> <div class="l-questions__item-tags"><span class="l-questions__item-tag violet">NUMPY</span><span class="l-questions__item-tag yellow">NUMPY</span></div> <p class="l-questions__item-title">How to specify multiple return types using type-hints</p> <p class="l-questions__item-answers"><span>12</span> answers</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/51922480-javascript-error-ipython-is-not-defined-in-jupyterlab/"></a> <div class="l-questions__item-tags"><span class="l-questions__item-tag violet">NUMPY</span><span class="l-questions__item-tag yellow">NUMPY</span></div> <p class="l-questions__item-title">Javascript Error: IPython is not defined in JupyterLab</p> <p class="l-questions__item-answers"><span>12</span> answers</p> </div> </div> <div class="l-questions__more-link"><a href="/cat/wiki/so/">All questions</a></div> </div> <div class="hub_ad"> <div id="ezoic-pub-ad-placeholder-106" style="position:sticky; position:-webkit-sticky; top:0; margin-top:10px; z-index: 1000"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9381065361874746" crossorigin="anonymous"></script> <!-- PYE aside NEW --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9381065361874746" data-ad-slot="8755532771" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> </div> </div> </div> <!-- news --> <div class="news"> <div class="container"> <h2 class="news__title h2">News</h2> <div class="news__items"> <!-- <a class="news__item" href="https://python.engineering/famous-programmers-and-developers-cooler-than-rock-stars-and-movie-actors/" style="background-image: url('https://python.engineering/wp-content/uploads/2022/09/pye-famous-29-09-2022.jpeg')"> --> <a class="news__item" href="https://python.engineering/famous-programmers-and-developers-cooler-than-rock-stars-and-movie-actors/" style="background-color: #243978;"> <span class="news__item-overlay"> <span class="news__item-cat">29/09/2022</span> <span class="news__item-title">Famous programmers and developers: cooler than rock stars and movie actors</span> </span> </a> <!-- <a class="news__item" href="https://python.engineering/what-employers-expect-from-a-junior-python-developer/" style="background-image: url('https://python.engineering/wp-content/uploads/2022/09/bcc-junior-python-26-09-2022.jpeg')"> --> <a class="news__item" href="https://python.engineering/what-employers-expect-from-a-junior-python-developer/" style="background-color: #243978;"> <span class="news__item-overlay"> <span class="news__item-cat">26/09/2022</span> <span class="news__item-title">What Employers Expect from a Junior Python Developer</span> </span> </a> <!-- <a class="news__item" href="https://python.engineering/python-vs-r-what-should-a-beginner-data-scientist-choose/" style="background-image: url('https://python.engineering/wp-content/uploads/2022/09/pye-R-25-09-2022.jpeg')"> --> <a class="news__item" href="https://python.engineering/python-vs-r-what-should-a-beginner-data-scientist-choose/" style="background-color: #243978;"> <span class="news__item-overlay"> <span class="news__item-cat">25/09/2022</span> <span class="news__item-title">Python vs. R: what should a beginner Data Scientist choose?</span> </span> </a> </div> </div> </div> <!-- /new --> <br> <!-- wiki --> <div class="wiki"> <div class="container"> <h2 class="wiki__title h2">Wiki</h2> <div class="wiki-grid"> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-opencv-cv2-puttext-method/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">__del__</span></a> </div> <p class="l-questions__item-title">Python OpenCV | cv2.putText () method</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/numpy-arctan2-python/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">__del__</span></a> </div> <p class="l-questions__item-title">numpy.arctan2 () in Python</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-os-path-realpath-method/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">__del__</span></a> </div> <p class="l-questions__item-title">Python | os.path.realpath () method</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-opencv-cv2-circle-method/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">around</span></a> </div> <p class="l-questions__item-title">Python OpenCV | cv2.circle () method</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-opencv-cv2-cvtcolor-method/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">cvtcolor</span></a> </div> <p class="l-questions__item-title">Python OpenCV cv2.cvtColor () method</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-move-element-to-end-of-the-list/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">Python functions</span></a> </div> <p class="l-questions__item-title">Python - Move item to the end of the list</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/time-perf_counter-function-in-python/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">Counters</span></a> </div> <p class="l-questions__item-title">time.perf_counter () function in Python</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-check-if-one-list-is-subset-of-other/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">__dict__</span></a> </div> <p class="l-questions__item-title">Check if one list is a subset of another in Python</p> </div> <div class="l-questions__item"><a class="l-questions__item-link" href="https://python.engineering/python-os-path-join-method/"></a> <div class="l-questions__item-tags"> <a href=""><span class="l-questions__item-tag violet">__del__</span></a> </div> <p class="l-questions__item-title">Python os.path.join () method</p> </div> </div> </div> </div> <!-- /wiki --> <!-- new footer --> <footer class="footer"> <div class="container"> <div class="footer__row"> <div class="footer__left"><img class="footer__logo" src="/wp-content/themes/nimani/img/footer-logo.svg" alt="Python Engineering"> <p class="footer__copyright">© 2017—2022 <br> Python Engineering Hub</p> <p class="footer__desc"> <a href="/cat/wiki/" class="footer__nav-link">EN</a> | <a href="/cat/es_sp/" class="footer__nav-link">ES</a> | <a href="/cat/de_de/" class="footer__nav-link">DE</a> | <a href="/cat/fr_fr/" class="footer__nav-link">FR</a> | <a href="/cat/it_it/" class="footer__nav-link">IT</a> | <a href="/cat/ru_ru/" class="footer__nav-link">RU</a> | <a href="/cat/tr_tr/" class="footer__nav-link">TR</a> | <a href="/cat/pl_pl/" class="footer__nav-link">PL</a> | <a href="/cat/pt_pt/" class="footer__nav-link">PT</a> | <a href="/cat/ja_jp/" class="footer__nav-link">JP</a> | <a href="/cat/ko_kr/" class="footer__nav-link">KR</a> | <a href="/cat/zh_cn/" class="footer__nav-link">CN</a> | <a href="/cat/hi_in/" class="footer__nav-link">HI</a> | <a href="/cat/nl_nl/" class="footer__nav-link">NL</a> </p> <br> <p class="footer__desc"> Python.Engineering is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com </p> </div> <div class="footer__nav-col"> <p class="footer__nav-title">Python</p> <ul class="footer__nav-list"> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/loops/">Loops</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/counters/">Counters</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/numpy/">NumPy</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/nlp/">NLP</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/regex/">Regular Expressions</a></li> </ul> </div> <div class="footer__nav-col"> <p class="footer__nav-title">Wiki</p> <ul class="footer__nav-list"> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/news/">Tech news</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/wiki/">Python Wiki</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/wiki/so/">StackOverflow</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/php/">PHP</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/javascript/">JavaScript</a></li> </ul> </div> <div class="footer__nav-col"> <p class="footer__nav-title">Books</p> <ul class="footer__nav-list"> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/books/">All books</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/computations/">Computations</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/development/">Development</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/cryptography/">Cryptography</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/beginners/">For dummies</a></li> <li class="footer__nav-item"><a class="footer__nav-link" href="/cat/bigdata/">Big Data</a></li> </ul> </div> </div> </div> </footer> <script src="https://code.jquery.com/jquery-3.5.0.min.js"></script> <script src="/wp-content/themes/nimani/js/libs.js"></script> <script src="/wp-content/themes/nimani/js/index.js"></script> <script src="/wp-content/themes/nimani/js/vendor/lazysizes.min.js" async></script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-Q022WLXW4X" async></script> <script async src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?autoload=true&skin=desert&lang=python"></script> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", () => { let arrayCode = document.querySelectorAll('pre'); arrayCode.forEach(element => { element.classList.add("prettyprint"); }); }); </script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-Q022WLXW4X'); </script> <!-- ===================== LEAVE POPUP ===================== <script src="/wp-content/themes/nimani/js/ouibounce.js"></script> <script> // if you want to use the 'fire' or 'disable' fn, // you need to save OuiBounce to an object var _ouibounce = ouibounce(document.getElementById('ouibounce-modal'), { aggressive: true, timer: 0, delay: 1000, callback: function() { console.log('ouibounce fired!'); } }); $('body').on('click', function() { $('#ouibounce-modal').hide(); }); $('#ouibounce-modal .modal-footer').on('click', function() { $('#ouibounce-modal').hide(); }); $('#ouibounce-modal .modal').on('click', function(e) { e.stopPropagation();}); </script> <script> $("#reload_form_button" ).click(function() { console.log("hui"); $('#reload_form').load('/wp-content/themes/nimani/af.html'); }); </script> ===================== /LEAVE POPUP ===================== --> </body> </html> <!-- /new footer -->