python filter object values

ผมลองทำออกมาจากข้อมูลนี้ 
https://www.online-python.com/FbTP2eEwSh
 
from numpy import nan
data = {'series': {'title': {0: '[พร้อมส่ง!] Xiaomi Mi TV P1 55" Android TV คมชัดระดับ 4K UHD รองรับ Netflix,Youtube,Google Assistant ประกันศูนย์ไทย 3ปี',
   1: 'SKYWORTH 42 นิ้ว Android TV รุ่น 42V6 Google Play รองรับ Netflix/Youtube/Google Play',
   2: 'TCL ทีวี 55 นิ้ว LED 4K UHD Android TV Wifi Smart TV OS Google assistant (รุ่น 55T5000A)',
   3: 'SKYWORTH 55 นิ้ว Android 10 TV 4K รุ่น 55SUC7500 รองรับ Netflix/Youtube/Google Play คมชัด 4K HDR10+',
   4: 'COOCAA 50S3C ทีวี 50 นิ้ว Smart TV LED 4K UHD Wifi -HDMI-USB-Netflix &Youtube',
   5: 'COOCAA 55S6G PRO ทีวี 55 นิ้ว Inch Android TV LED 4K UHD โทรทัศน์ Android10 2G+32G',
   6: 'TCL ทีวี 55 นิ้ว LED 4K UHD Android TV Wifi Smart TV OS Google assistant (รุ่น 55T5000A)',
   7: 'TCL ทีวี 55 นิ้ว LED 4K UHD Smart TV (รุ่น 55SE5000) - Wifi-Internet-HDMI-USB-Netflix-Youtube-H',
   8: 'SKYWORTH 55 นิ้ว Android 10 TV 4K รุ่น 55SUC7500 รองรับ Netflix/Youtube/Google Play คมชัด 4K HDR10+',
   9: 'Sony XR-55X90J (55 นิ้ว) l 4K Ultra HD l High Dynamic Range (HDR) l สมาร์ททีวี (Google TV)',
   10: 'COOCAA 55S3C ทีวี 55 นิ้ว Smart TV LED 4K UHD Wifi internet -HDMI-USB-Netflix &Youtube',
   11: '[NEW Premium 4K] TCL 4K ทีวี 55 นิ้ว LED 4K UHD Android 11 Wifi Smart TV OS (รุ่น 55LINETVPRO)',
   12: 'Sony KD-55X9500H (55 นิ้ว) | Full Array LED | 4K Ultra HD | High Dynamic Range (HDR) | สมาร์ททีวี (Android TV)',
   13: 'Sony KD-55X7500H (55 นิ้ว) | 4K Ultra HD | High Dynamic Range (HDR) | สมาร์ท ทีวี (Android TV)'},
  'coupon': {0: 'โค้ดลด ฿300',
   1: 'โค้ดลด ฿1,000',   2: 'โค้ดลด ฿1,000',
   3: 'โค้ดลด ฿1,000',   4: 'โค้ดลด ฿300',
   5: 'โค้ดลด ฿300',   6: 'โค้ดลด ฿1,000',
   7: 'โค้ดลด ฿1,000',   8: 'โค้ดลด ฿1,000',
   9: nan,
   10: 'โค้ดลด ฿300',   11: 'โค้ดลด ฿1,000',
   12: nan,   13: nan},
  'price': {0: '฿18,990',
   1: '฿16,690',   2: '฿18,990',
   3: '฿36,390',   4: '฿9,990',
   5: '฿13,090 - ฿13,389',
   6: '฿18,990',   7: '฿17,990',
   8: '฿36,390',   9: '฿39,990',
   10: '฿11,890',   11: '฿19,990',
   12: '฿39,990',   13: '฿24,490'},
  'sales': {0: 'ขายแล้ว 804 ชิ้น',
   1: 'ขายแล้ว 3.6พัน ชิ้น',   2: 'ขายแล้ว 649 ชิ้น',
   3: 'ขายแล้ว 244 ชิ้น',   4: 'ขายแล้ว 846 ชิ้น',
   5: 'ขายแล้ว 45 ชิ้น',   6: 'ขายแล้ว 649 ชิ้น',
   7: 'ขายแล้ว 1.5พัน ชิ้น',   8: 'ขายแล้ว 244 ชิ้น',
   9: 'ขายแล้ว 80 ชิ้น',   10: 'ขายแล้ว 49 ชิ้น',
   11: 'ขายแล้ว 66 ชิ้น',   12: 'ขายแล้ว 133 ชิ้น',
   13: 'ขายแล้ว 183 ชิ้น'},
  'origin': {0: 'จังหวัดสมุทรปราการ',
   1: 'จังหวัดกรุงเทพมหานคร',   2: 'จังหวัดสมุทรปราการ',
   3: 'จังหวัดสมุทรปราการ',   4: 'จังหวัดสมุทรปราการ',
   5: 'จังหวัดสมุทรปราการ',   6: 'จังหวัดสมุทรปราการ',
   7: 'จังหวัดสมุทรปราการ',   8: 'จังหวัดสมุทรปราการ',
   9: 'จังหวัดสมุทรปราการ',   10: 'จังหวัดกรุงเทพมหานคร',
   11: 'จังหวัดสมุทรปราการ',   12: 'จังหวัดสมุทรปราการ',
   13: 'จังหวัดสมุทรปราการ'},
  'price_int': {0: 18990,
   1: 16690,   2: 18990,
   3: 36390,   4: 9990,
   5: 13389,   6: 18990,
   7: 17990,   8: 36390,
   9: 39990,   10: 11890,
   11: 19990,   12: 39990,
   13: 24490},
  'sold': {0: 804,
   1: 3600,   2: 649,
   3: 244,   4: 846,
   5: 45,   6: 649,
   7: 1500,   8: 244,
   9: 80,   10: 49,
   11: 66,   12: 133,
   13: 183}}}
 
   # filter data ให้เป็น 'จังหวัดกรุงเทพมหานคร'
filterlist = list(filter(lambda x : x =='จังหวัดกรุงเทพมหานคร' ,data['series']['origin'].values()))
print(filterlist)
 
 
ไม่ทราบว่า filter() เค้าต้องทำแบบไหนถึงได้ object นั้นคืน มาครับ ผมได้แต่ จังหวัดกรุงเทพมหานคร คืนมาอย่างเดียว
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 5
แนะนำให้ใช้ pandas ในการทำงานกับตารางแบบนี้ครับ เพิ่ม

import pandas

แล้วเพิ่มสองบรรทัดนี้เข้าไปตอนท้าย

df = pandas.DataFrame(data['series'])
print(df.query("origin == 'จังหวัดกรุงเทพมหานคร'"))

ถ้าต้องใช้แต่ python จริง ๆ ก็พอได้ keys ของสินค้ามาก็เอามาวนลูปอ่านออกมาจาก dict ได้ครับ

index = [i for i,v in data['series']['origin'].items() if v == 'จังหวัดกรุงเทพมหานคร']
print(index)
for i in index:
    print(i, end=' ')
    for c in data['series'].keys():
        print(data['series'][c][i], end=' ')
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่