python tips image
Pro Tips

วิธีแก้ TypeError a bytes-like object is required not str

0

typeerror: a bytes-like object is required, not ‘str’ คือ หนึ่งในปัญหาของ TypeError ที่เกิดขึ้นอยู่บ่อยครั้งในการเขียนโค้ด และเมื่อไหร่ก็ตามที่เราพูดถึงปัญหาข้อผิดพลาดเหล่าโปรแกรมเมอร์ก็คงจะรู้สึกปวดหัวไปตามกัน เพราะวิธีการแก้ไขของแต่ละปัญหานั้นก็ค่อนข้างมีความซับซ้อนและผู้ใช้งานก็ต้องมีความระมัดระวังในการแก้ไขมากพอสมควร แต่คุณจะไม่มีทางสามารถแก้ไขปัญหาที่เกิดขึ้นได้เลยถ้าหากคุณไม่มีความเข้าใจเกี่ยวกับปัญหานั้นๆอย่างถ่องแท้และลึกซึ้ง ดังนั้นเพื่อให้คุณสามารถแก้ไขปัญหาได้แบบมืออาชีพ ในคู่มือนี้เราจะคุณไปทำความเข้าใจเกี่ยวกับสาเหตุของปัญหา TypeError a bytes-like object is required not str พร้อมอธิบายวิธีการแก้ไขแบบละเอียด

TypeError image

TypeError a bytes-like object is required not str คืออะไร?

typeerror: a bytes-like object is required, not ‘str’ คือ ปัญหาข้อผิดพลาดที่เกิดขึ้นในการเขียนโค้ด แต่ปัญหาที่เกิดขึ้นนี้เป็นปัญหาที่มีรายละเอียดเฉพาะเจาะจง ซึ่งถ้าหากคุณต้องการแก้ไขปัญหาที่เกิดขึ้น

คุณจำเป็นต้องเริ่มต้นจากการแก้ไขปัญหาให้ตรงจุดเสียก่อน เพราะถ้าหากคุณลองอ่านข้อความ TypeError ดีๆจะพบว่า ปัญหาที่เกิดขึ้นนี้เป็นปัญหาข้อผิดพลาดที่เกี่ยวข้องกับการใช้งานตัวแปร Object และ Srt โดยตรง เพราะฉะนั้นเราจะพาคุณไปตามหาสาเหตุของปัญหาที่เกิดขึ้น ซึ่งคุณสามารถติดตามข้อมูลและรายละเอียดได้ในหัวข้อถัดไป

TypeError a bytes-like object is required not str มีสาเหตุมาจากอะไร?

typeerror: a bytes-like object is required, not ‘str’ เป็นปัญหาข้อผิดพลาดที่เฉพาะเจาะจง ซึ่งสาเหตุของปัญหานี้มาจากการที่คุณพยายามใช้ฟังก์ชันกับค่าตัวแปรคนละประเภท หรือก็คือการที่คุณพยายามใช้ตัวแปรสตริงควบคู่กับการทำงานของ Object นั่นเอง ก่อนอื่นเราต้องขออธิบายก่อนว่าการใช้งานฟังก์ชันหรือการรันสคริปต์นั้นคุณจำเป็นต้องใช้งานคำสั่งและตัวแปรประเภทเดียวกัน เพราะถ้าหากคุณไม่ทำเช่นนั้นคำสั่งสคริปต์ที่คุณสร้างก็อาจจะเกิดข้อผิดพลาด TypeError ได้นั่นเอง แน่นอนว่าการที่เกิดปัญหา TypeError มันจะทำให้การเขียนโค้ดของคุณนั้นมีความยุ่งยากมากขึ้น เพราะคุณจะต้องเสียเวลาไปกับการแก้ไขโค้ดและการจัดการตัวแปรใหม่หมด ถึงแม้ปัญหาที่เกิดขึ้นนี้จะค่อนข้างมีความซับซ้อนแต่ถ้าหากคุณมีความเข้าใจอย่างลึกซึ้งการแก้ปัญหาที่เกิดขึ้นนี้ก็ไม่ใช่เรื่องที่ยากอะไรเลย

ตัวอย่างปัญหา TypeError

  1. เราได้ทำการกำหนดคำสั่งสคริปต์ดังนี้

with open(“recipes.txt”, “rb”) as file:

        recipes = file.readlines()

for r in recipes:

        if "Chocolate" in r:

                print(r)

  1. หลังจากที่เราทำการเรียกใช้ฟังก์ชันคำสั่ง ผลลัพธ์ที่ได้คือมีข้อผิดพลาดเกิดขึ้น

Traceback (most recent call last):

  File "main.py", line 7, in <module>

        if "Chocolate" in r:

TypeError: a bytes-like object is required, not 'str'

จากตัวอย่างที่เราได้หยิบยกมานี้ได้แสดงให้เห็นถึงข้อผิดพลาด TypeError ที่เกิดขึ้น ซึ่งเราจะมาอธิบายวิธีการแก้ไขแก่คุณในหัวข้อถัดไป

การแก้ไข TypeError a bytes-like object is required not str

TypeError a bytes-like object is required not str สามารถเริ่มต้นแก้ไขได้ง่ายๆเพียงแค่คุณต้องทำการตรวจสอบข้อมูลโค้ดของคุณให้ละเอียด จากนั้นสังเกตว่าสคริปต์หรือโค้ดที่คุณเขียนนั้นมีสตริง str อยู่หรือไม่ ถ้าหากมีให้คุณรีบทำการแก้ไข เนื่องจากระบบนั้นจะไม่สามารถรันคำสั่งได้ถ้าหากตัวแปรที่คุณใช้ไม่ได้อยู่ในกลุ่มของ Object

ยกตัวอย่างการแก้ไขปัญหา

  1. จากตัวอย่างในหัวข้อก่อนหน้าเราทราบแล้วว่าต้นตอของปัญหามาจากการเปิดไฟล์เป็นไบนารี “txt”
  • with open(“recipes.txt”, “rb”) as file:
  1. หลังจากที่เรารู้สาเหตุของปัญหาที่เกิดขึ้นแล้ว ให้เราทำการแก้ไขปัญหาที่เกิดขึ้นนี้โดยการเปิดโหมดอ่านแทนโหมดอ่านไบนารี
  • with open(“recipes.txt”, “r”) as file:
  1. โปรดจำไว้ว่าโหมดอ่านมีไว้สำหรับอ่านไฟล์ข้อความ ส่วนโหมดอ่านไบนารีมีไว้สำหรับอ่านไฟล์ไบนารี ดังนั้นเมื่อทำการลบ “b” ออกก็จะทำให้สคริปต์ของเราเข้าสู่โหมดอ่านข้อความแบบปกตินั่นเอง ซึ่งผลลัพธ์ที่ได้คือ
  • Chocolate Fudge Cake
  • Chocolate Chip Cookie
  • Chocolate Square

หลังจากทำการแก้ไข “recipes.txt” พบว่าปัญหาข้อผิดพลาด TypeError ได้หายไปแล้ว และเราก็สามารถรันโค้ดได้ปกติ ซึ่งทั้งหมดนี้คือตัวอย่างการแก้ปัญหาที่เกิดขึ้น

ข้อสรุป

typeerror: a bytes-like object is required, not ‘str’ เป็นปัญหาข้อผิดพลาดที่จะเกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชันตัวแปรที่ไม่ใช่ประเภทเดียวกัน ยกตัวอย่างเช่นการใช้ตัวแปรสตริงควบคู่กับ Object

สำหรับแนวทางการแก้ไขนั้นก็สามารถทำได้ง่ายๆเพียงแค่ทำการตรวจสอบสคริปต์และดูว่ามีตัวแปรใดที่ไม่ได้อยู่ในหมวดหมู่ของ Object ถ้าหากมีให้คุณทำการแก้ไขทันที ซึ่งสามารถดูวิธีการแก้ไขได้จากคู่มือข้างต้น

 

อ่านเพิ่มเติมเกี่ยวกับ vpn-th.com:

Claire Lynch

แนะนำวิธีการใช้ Java Math.random แบบง่ายๆ

Previous article

วิธีแก้ Fatal: not a git repository ให้ได้ผลแบบมือใหม่

Next article

You may also like

Comments

Comments are closed.

More in Pro Tips