จัดการ Response JSON กับ เรื่องของ File

Mister Nay
2 min readDec 24, 2017

--

ผลการค้นหารูปภาพสำหรับ file
credit: https://cdn-images-1.medium.com/max/670/1*wPqqYFfNreXF4INrNhYkeQ.jpeg

วันนี้จะมาจัดการ 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 ออกนะครับ

ง่ายๆใช่มั้ยครับ :)

วันนี้ขอฝากไว้เท่านี้ครับ ขอบคุณครับ

--

--

No responses yet