mikebol Δημοσ. 23 Αυγούστου 2019 Δημοσ. 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 Δημοσ. 23 Αυγούστου 2019 Το [] σημαινει οτι ειναι μια λιστα απο {} αντικειμενα. Οποτε για να τραβηξεις το remainingTime θα πρεπει να κανεις ενα iteration στην λιστα completedCycles οπως σωστα εχεις κανει στο τελος. Ομως θα πρεπει να αλλαξεις το print και να τυπώσεις το item.remainingTime αφου το item ειναι ενα {} αντικειμενο με πεδίο το remainingTime. Ειμαι απο κινητο οποτε εδωσα μια απαντηση οσο πιο επεξηγηματικη γινοταν
mikebol Δημοσ. 23 Αυγούστου 2019 Μέλος Δημοσ. 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 Δημοσ. 23 Αυγούστου 2019 Τι είναι το issue και πως το παίρνεις από το json file; Κάνεις το dict object; Τεσπα τo completedCycles είναι κλειδί με τιμή λιστα, οπότε για να πάρεις τις τιμές του θα ζητήσεις completedCycles[0] και αυτό τώρα είναι dict και μπορείς να πάρεις την τιμή του με ['remainingTime']. Όλο μαζί issue.fields.completedCycles[0]['remainingTime'].
mikebol Δημοσ. 25 Αυγούστου 2019 Μέλος Δημοσ. 25 Αυγούστου 2019 Δεν είμαι σίγουρος ότι καταλαβαίνω γιατί, άλλα το παρακάτω έτρεξε. temp_ack = issue.fields.completedCycles for item in temp_ack: print(item.remainingTime.friendly) # Returns 11h 52m
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα