mikebol Δημοσ. 23 Αυγούστου 2019 Share Δημοσ. 23 Αυγούστου 2019 Καλησπερα. Προσπαθω να τραβηξω καποια δεδομένα, τα οποια ειναι σε μορφη json. και αντιμετωπιζω το εξης προβλημα. Οταν οι οντοτητες εχουν [ ] δεν μπορω να εχω προσβαση στο περιεχομενο τους (δεν εχω δουλεψει ποτε με αρχεια json ξανα), ενω οταν ειναι με { } μπορω να τα δω κανονικα. Περιεχομενο αρχειου json. "fields":{ "status":{ "self":"BLABLA", "description":"MY DESCRIPTION", "iconUrl":"BLABLA", "name":"Feedback Requested (Status Under Investigation)", "id":"1080AAA", "statusCategory":{ "self":"BLABLA", "id":2, "key":"new", "colorName":"blue-gray", "name":"To Do" } "completedCycles":[ { "remainingTime":{ "millis":42757515, "friendly":"11h 52m" } } ] } Python code: print(issue.fields.status.description) # returns "My description" print(type(issue.fields.customfield_11103.completedCycles)) # returns <class 'list'> print(issue.fields.completedCycles.remainingTime) # AttributeError: 'list' object has no attribute 'remainingTime' print(issue.fields.completedCycles['remainingTime']) # TypeError: list indices must be integers or slices, not str temp = issue.fields.completedCycles for item in temp: print(temp.index(item)) # returns 0 (1 line) Ο στόχος είναι να τραβήξω τo remainingTime Αν χρειάζεστε κάτι άλλο μου λέτε. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Caiden Δημοσ. 23 Αυγούστου 2019 Share Δημοσ. 23 Αυγούστου 2019 Το [] σημαινει οτι ειναι μια λιστα απο {} αντικειμενα. Οποτε για να τραβηξεις το remainingTime θα πρεπει να κανεις ενα iteration στην λιστα completedCycles οπως σωστα εχεις κανει στο τελος. Ομως θα πρεπει να αλλαξεις το print και να τυπώσεις το item.remainingTime αφου το item ειναι ενα {} αντικειμενο με πεδίο το remainingTime. Ειμαι απο κινητο οποτε εδωσα μια απαντηση οσο πιο επεξηγηματικη γινοταν Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
mikebol Δημοσ. 23 Αυγούστου 2019 Μέλος Share Δημοσ. 23 Αυγούστου 2019 6 ώρες πριν, Caiden είπε Το [] σημαινει οτι ειναι μια λιστα απο {} αντικειμενα. Οποτε για να τραβηξεις το remainingTime θα πρεπει να κανεις ενα iteration στην λιστα completedCycles οπως σωστα εχεις κανει στο τελος. Ομως θα πρεπει να αλλαξεις το print και να τυπώσεις το item.remainingTime αφου το item ειναι ενα {} αντικειμενο με πεδίο το remainingTime. Ειμαι απο κινητο οποτε εδωσα μια απαντηση οσο πιο επεξηγηματικη γινοταν Ευχαριστώ για την απαντηση. Δυστυχώς ούτε αυτό δουλεψε. temp = issue.fields.completedCycles # Time remaining to breached for item in temp: print(temp.index(item.remainingTime)) # ValueError: <class ' '> is not in list Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 23 Αυγούστου 2019 Share Δημοσ. 23 Αυγούστου 2019 Τι είναι το issue και πως το παίρνεις από το json file; Κάνεις το dict object; Τεσπα τo completedCycles είναι κλειδί με τιμή λιστα, οπότε για να πάρεις τις τιμές του θα ζητήσεις completedCycles[0] και αυτό τώρα είναι dict και μπορείς να πάρεις την τιμή του με ['remainingTime']. Όλο μαζί issue.fields.completedCycles[0]['remainingTime']. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
mikebol Δημοσ. 25 Αυγούστου 2019 Μέλος Share Δημοσ. 25 Αυγούστου 2019 Δεν είμαι σίγουρος ότι καταλαβαίνω γιατί, άλλα το παρακάτω έτρεξε. temp_ack = issue.fields.completedCycles for item in temp_ack: print(item.remainingTime.friendly) # Returns 11h 52m Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα