จัดการ Response JSON กับ เรื่องของ File
วันนี้จะมาจัดการ Response ที่เป็น JSON ที่ได้รับกลับมาหลังจากได้ส่ง Request ไปหาเชิฟเวอร์ และ เสริมเรื่องการอ่านไฟล์ เขียนไฟล์ โดย python
มาเริ่มกันเลย
Lib ที่เราต้องใช้คือ requests นะครับ
ภาษา Python เบื้องต้นนะครับ
โดยเราสามารถจัดการ JSON ได้ง่ายๆโดย ใช้ lib ตัวเดียว โดยใช้คำสั่ง
r คือ response นะครับ
data = r.json()
เท่านี้เราก็จะได้ Json แล้ว
มาลองกัน
โดยจะลอง request ไปที่ url นี้ จะได้ J son กับมา
Json ที่เราจะมาทดสอบ คือ
# {
# "mods": {
# "filter": {},
# "listItems": [
# {
# "name": "Acer ....",
จะเห็นได้ว่า ListItems มีลูกเป็น array หรือ list เราอยากได้ ชื่อ ทั้งหมดเราก็จะมีวิธีเรียกง่ายๆดังนี้
import requests
r = requests.get('http://www.lazada.co.th/shop-gaming-notebook/acer/?ajax=true&page=1&style=list')
data = r.json()
for i in data['mods']['listItems']: #for - each
print(i['name'])
สังเกตุโค๊ดดีๆ เราสามารถเรียก Json ในรูปแบบ Key:value ได้
โดยสามารถเรียนต่อลงชั้นลึกไปเรื่อยๆโดย เขียนต่อไปด้านขวา
เราก็จะได้ชื่อใน ListItem ทั้งหมดง่ายมั้ยครับ
มาต่อเรื่องของ File
File เราสามารถเขียนหรืออ่านไฟล์จากข้างนอกได้ดังนี
เช่นต้องการเขียน data ที่ได้จาก Requests ลง ไฟล์
import requests
r = requests.get('http://www.lazada.co.th/shop-gaming-notebook/acer/?ajax=true&page=1&style=list')
data = r.json()
f = open('nameA.txt','w')
for i in data['mods']['listItems']:
try:
f.writelines(i['name']+'\n')
print(i['name'])
except:
print(i['name'])
f.close()
open(‘ชื่อไฟล์.type’,’โหมด’) จะมีสองโหมด คือ ‘w’ คือเขียน ‘r’ คืออ่านไฟล์นะครับ
ง่ายมั้ยครับ เรามาลองอ่านไฟล์กัน
โดยเราจะลองเอา ไฟล์ที่เราเชฟ มาเรียกใช้แบบ arrayList ทีละบรรทัดกัน
f = open('nameA.txt' , 'r') #อ่านไฟล์ โหมด 'r'
x = f.readlines() #อ่านทุกบรรทัดแล้วเก็บใน x
for i in x[:5]: #ลองเรียก 5 บรรทัดแรก
print(i.replace('\n', '')) #เพื่อลบ \n ออกนะครับ
ง่ายๆใช่มั้ยครับ :)
วันนี้ขอฝากไว้เท่านี้ครับ ขอบคุณครับ