קריאת JSON בPYTHON
-
שלום לכולם. בהערכה על הפורום המיוחד הזה שכולם שותפים ומשתפים בו מידע שאין, אין למצוא. אין עליכם!
האם ידוע למישהו איך לבודד מתוך תשובת JSON ארוכה חלק מהמידע. בפייתון.
אני מקבל תשובה כזו:{ "data" : [ { "pin" : "", "inuse" : "0", "currency" : "ILS", "lastcalled" : "***", "dialplan" : "", "last_charge" : "0", "caller" : "***", "locked" : "0", "timezone" : "", "language" : "", "serial" : "***", "firstuse" : "***", "created" : "***", "lastcalledtime" : "***", "card" : "***", "batch" : "48292", "balance" : "0.186625", "cardgroup" : "462", "expires" : "0" }, { "currency" : "ILS", "lastcalled" : "", "dialplan" : "", "last_charge" : "0", "caller" : "***", "locked" : "0", "timezone" : "", "language" : "", "serial" : "***", "firstuse" : "0", "created" : "***", "lastcalledtime" : "0", "card" : "***", "batch" : "***", "balance" : "252.000000", "cardgroup" : "***", "expires" : "0" }, ואני רוצה לדעת את הערך של balance של השני (שורה 24).
ואם אני מגדיר ש
n4 = float (d3['data']['balance'])
אז אני מקבל רק את הbalance של הראשון בלבד!
-
תודה!!! איך שדבר קטן משנה הכל!!
-
האם יש דרך לבודד:
לפי פרמטר שנמצא במערך מסויים (למשל יש לי 700 מפתחות ואני רוצה להדפיס את ה 'balance' רק של מי שה'lastcalled' הוא למשל 0504100000.תודה!
-
בידוד לפי תנאי
מערך (list) של ה-balance של כל האברים שעונים על התנאי:
[item['balance'] for item in obj['data'] if item['lastcalled'] == '0504100000']
או אם אתה יודע שיש רק אחד שעונה על התנאי:
next((item['balance'] for item in obj['data'] if item['lastcalled'] == '0504100000'), 0)
ערך אחרון
obj['data'][-1]
-
-
yossizהשיב ליצירה ב 4 בנוב׳ 2020, 10:22 נערך לאחרונה על ידי yossiz 11 באפר׳ 2020, 10:26
@יוסף1111 בסדר גמור לא התכוונתי להטיף רק לעזור...
כדי להבין את התשובה שלי תבדוק את הנושא של generators ו-list comprehension (סוג ביטוי שמחזיר generator) ופונקציית
next
שמחזירה את הערך הבא מה-generator. -
-
@יוסף1111 אמר בקריאת JSON בPYTHON:
אם אני לא מוצא אחרי חיפושים אני שואל.
ומה חיפשת? איך לדעתך יש לבטא את השאלה בגוגל?
-
@yossiz אמר בקריאת JSON בPYTHON:
אגב, תוך כדי שגיגלתי בנושא השאלה שלך (אני לא בקי בפייתון) נתקלתי בזה...
אחרי לחיצה על "I want to play" הסדק בדף נפתח לגמרי לגלות את זה:
כדאי להתראיין אצל גוגל?
?
אבל תשתף אותנו באתגרים אח"כ...
-
@dovid "מילונים-איתור ערך פייתון". חיפשתי ברשת-טק. אלעד פלג. מדריך סייבר של צהל ברק גונן ועוד. עם טרנסלייט ניסיתי לחשוב על רעיונות.
ניסיתי עם LEN ולקח לזה כמעט 10 שניות כי הוא סופר הכל. עם רה-פינד. עוד ועוד..
גנרטור הכרתי רק משבת! -
@יוסף1111 תמיד כדאי לחפש באנגלית.
אני חיפשתי https://www.google.com/search?q=python+list+find+first ומצאתי את התשובה בתוצאה הראשונה -
@yossiz נכון. ועם עוד כמה (המון!) דברים שאני לא יודע. אבל לאט לאט ועם אנשים טובים בדרך (yossiz
!) מגיעים תמיד בע"ה לתוצאות מעולות! (למשל עכשיו אני ממש
רגעים לפני סיוםסליחה! לפני דרך ארוכה להשתכלל עוד!) -
@יוסף1111 זה לא טוב.
עניין אותך איך לסיים, ואכן עוד מעט אתה מסיים אבל עד עכשיו (למרות שזה כבר נאמר לך בשאלה הקודמת ששאלת) אתה לא יודע שקוראים לזה מערך ולא מילון (מה זה משנה, העיקר סיימת!), והעזרה של @yossiz עזרה לך לחסוך קריאה ולהיות טוב בלמצוא בפורום את האנשים הנכונים ופחות להכיר את השפה איתה עובד...
כשאתה שואל, עליך לשים בצד את התקדמות בפרוייקט, ולהיות במצב של שאלה בבית ספר.
יש לי אוסף ואני צריך לאתר בו איבר, לפי ערך של אחד שדותיו.
איך לחפש את זה? מה זה אומר מבחינת קוד?בקשר לחיפוש, אין מה לחפש בעברית. יש אפס חומר ורמתו בהתאם ליחס המספרי הכולל.
אתה יכול לשאול פה איך לחפש, נעזור לך בשמחה. ככה לא רק תתקדם, אלא גם תשתכלל.
15/19