Προς το περιεχόμενο

Data from json file, using Python


Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα.

Προσπαθω να τραβηξω καποια δεδομένα, τα οποια ειναι σε μορφη 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

Αν χρειάζεστε κάτι άλλο μου λέτε.

Δημοσ.

Το [] σημαινει οτι ειναι μια λιστα απο {} αντικειμενα. Οποτε για να τραβηξεις το remainingTime θα πρεπει να κανεις ενα iteration στην λιστα completedCycles οπως σωστα εχεις κανει στο τελος. Ομως θα πρεπει να αλλαξεις το print και να τυπώσεις το item.remainingTime αφου το item ειναι ενα {} αντικειμενο με πεδίο το remainingTime. 

 

Ειμαι απο κινητο οποτε εδωσα μια απαντηση οσο πιο επεξηγηματικη γινοταν

Δημοσ.
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
Δημοσ.

Τι είναι το issue και πως το παίρνεις από το json file; Κάνεις το dict object;

Τεσπα τo completedCycles είναι κλειδί με τιμή λιστα, οπότε για να πάρεις τις τιμές του θα ζητήσεις completedCycles[0] και αυτό τώρα είναι dict και μπορείς να πάρεις την τιμή του με ['remainingTime']. Όλο μαζί issue.fields.completedCycles[0]['remainingTime'].

 

Δημοσ.

Δεν είμαι σίγουρος ότι καταλαβαίνω γιατί, άλλα το παρακάτω έτρεξε.

 

temp_ack = issue.fields.completedCycles
for item in temp_ack:
    print(item.remainingTime.friendly)  # Returns 11h 52m

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...