קריאת 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 של הראשון בלבד!
-
@יוסף1111 שכחת לציין את האינדקס, שהרי
data
הוא מערך:n4 = float (d3['data'][1]['balance'])
-
תודה!!! איך שדבר קטן משנה הכל!!
-
האם יש דרך לבודד:
לפי פרמטר שנמצא במערך מסויים (למשל יש לי 700 מפתחות ואני רוצה להדפיס את ה 'balance' רק של מי שה'lastcalled' הוא למשל 0504100000.תודה!
-
@יוסף1111 אתה אמור לדעת פייתון? יש שפת תכנות אחרת שאתה יודע?
אתה יודע מה זה מערך? -
@dovid מה פירוש אם אני יודע מה זה מערך? מערך זה list. רק שpy טען שהוא dict
-
בידוד לפי תנאי
מערך (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]
-
@יוסף1111 שים לב, שעניתי רק על השאלה, אבל @dovid צודק לגמרי שאם אתה רוצה להתקדם אתה חייב להבין איך זה עובד ולא רק להעתיק ולהדביק...
-
-
@יוסף1111 בסדר גמור לא התכוונתי להטיף רק לעזור...
כדי להבין את התשובה שלי תבדוק את הנושא של generators ו-list comprehension (סוג ביטוי שמחזיר generator) ופונקציית
next
שמחזירה את הערך הבא מה-generator. -
אגב, תוך כדי שגיגלתי בנושא השאלה שלך (אני לא בקי בפייתון) נתקלתי בזה...
אחרי לחיצה על "I want to play" הסדק בדף נפתח לגמרי לגלות את זה:
כדאי להתראיין אצל גוגל?
?
-
@יוסף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 דובר אנגלית כשפת אם. לא?
-
@יוסף1111 כן, אבל כמתכנת אתה חייב להתחיל להסתדר באנגלית אחרת יהיה קשה מאוד להתקדם. עצוב, אבל כך המציאות.
-
@yossiz נכון. ועם עוד כמה (המון!) דברים שאני לא יודע. אבל לאט לאט ועם אנשים טובים בדרך (yossiz
!) מגיעים תמיד בע"ה לתוצאות מעולות! (למשל עכשיו אני ממש
רגעים לפני סיוםסליחה! לפני דרך ארוכה להשתכלל עוד!) -
@יוסף1111 זה לא טוב.
עניין אותך איך לסיים, ואכן עוד מעט אתה מסיים אבל עד עכשיו (למרות שזה כבר נאמר לך בשאלה הקודמת ששאלת) אתה לא יודע שקוראים לזה מערך ולא מילון (מה זה משנה, העיקר סיימת!), והעזרה של @yossiz עזרה לך לחסוך קריאה ולהיות טוב בלמצוא בפורום את האנשים הנכונים ופחות להכיר את השפה איתה עובד...
כשאתה שואל, עליך לשים בצד את התקדמות בפרוייקט, ולהיות במצב של שאלה בבית ספר.
יש לי אוסף ואני צריך לאתר בו איבר, לפי ערך של אחד שדותיו.
איך לחפש את זה? מה זה אומר מבחינת קוד?בקשר לחיפוש, אין מה לחפש בעברית. יש אפס חומר ורמתו בהתאם ליחס המספרי הכולל.
אתה יכול לשאול פה איך לחפש, נעזור לך בשמחה. ככה לא רק תתקדם, אלא גם תשתכלל.