วิธีแก้ไขใน python: valueerror: ข้อมูลต่อท้าย


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้ Python คือ:

 ValueError : Trailing data

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามนำเข้าไฟล์ JSON ลงใน DataFrame ของ pandas แต่ข้อมูลถูกเขียนเป็นบรรทัดคั่นด้วยบรรทัดต่อท้าย เช่น ” \n

วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือเพียงระบุ lines=True เมื่อนำเข้าข้อมูล:

 df = pd. read_json (' my_data.json ', lines= True )

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรามีไฟล์ JSON ต่อไปนี้:

ตอนนี้ สมมติว่าเราพยายามนำเข้าไฟล์ JSON นี้ไปยัง DataFrame ของแพนด้า:

 #attempt to import JSON file into pandas DataFrame
df = pd. read_json (' Documents/DataFiles/my_data.json ')

ValueError : Trailing data

เราได้รับข้อผิดพลาดเนื่องจากองค์ประกอบ “ตรวจสอบ” ในไฟล์ JSON ของเรามี \n เพื่อแสดงบรรทัดต่อท้าย

วิธีการแก้ไขข้อผิดพลาด

วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือเพียงระบุ lines=True เมื่อนำเข้าข้อมูล:

 #import JSON file into pandas DataFrame
df = pd. read_json (' Documents/DataFiles/my_data.json ', lines= True )

#view DataFrame
df

	ID Rating Review
0 A 8 Great movie.\nI would recommend it.
1 B 5 Mediocre movie.\nWould not recommend it.
2 C 3 Bad movie.\nI would not recommend.
3 D 7 Decent movie.\nI might recommend it.

โปรดทราบว่าเราสามารถนำเข้าไฟล์ JSON ไปยัง DataFrame ของ pandas ได้สำเร็จโดยไม่มีข้อผิดพลาดใดๆ

หากเราต้องการลบบรรทัดต่อท้าย \n ออกจากคอลัมน์ “การแก้ไข” เราสามารถใช้ไวยากรณ์ต่อไปนี้:

 #replace \n with empty space in 'Review' column
df[' Review '] = df[' Review ']. str . replace (' \n ', ' ')

#view updated DataFrame
df

	ID Rating Review
0 To 8 Great movie. I would recommend it.
1 B 5 Mediocre movie. Would not recommend it.
2 C 3 Bad movie. I would not recommend.
3 D 7 Decent movie. I might recommend it.

\nค่า จะถูกลบออกจากคอลัมน์ “การแก้ไข” แล้ว

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:

วิธีแปลง Pandas DataFrame เป็นไฟล์ JSON
วิธีแปลงไฟล์ JSON เป็น Pandas DataFrame

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *