Ισιώστε τα ένθετα Λίστα

ψήφοι
1

Δεν είμαι σίγουρος αν ρωτάω αυτό στο σωστό μέρος, ή αν είμαι κατανόηση αυτό σωστά. Πρέπει να αλλάξετε το λεξικό, έτσι ώστε το πεδίο εμφάνισης προστίθεται πάνω στο κλειδί διαθεσιμότητα. Για παράδειγμα: «Availability.Occurrence»: «Καθημερινή»

 BEFORE
 test_data =  {
              testDate: 2018-11-19 21:00:00, 
              testMessage: This is a test message, 
              testStatus: Warning, 
              Results: [
                         {
                          Availability: {
                                           Occurence: Daily
                                          }, 
                          OldestRefreshDate: 2018-11-15 15:40:57 EST, 
                          TableName: test
                         }
                         ], 
              TaskId: CheckSourceRefreshDates
             }
AFTER
     test_data =  {
              testDate: 2018-11-19 21:00:00, 
              testMessage: This is a test message, 
              testStatus: Warning, 
              Results: [
                         {
                          Availability.Occurrence: Daily, 
                          OldestRefreshDate: 2018-11-15 15:40:57 EST, 
                          TableName: test
                         }
                         ], 
              TaskId: CheckSourceRefreshDates
             }

Είμαι νέος σε Python απλά προσπαθώ να καταλάβω όλα αυτά τα έξω. Κάθε βοήθεια είναι ευπρόσδεκτη. Εδώ είναι η λειτουργία που προσπάθησα χρησιμοποιώντας, ωστόσο, ισοπεδώνει μόνο ολόκληρο το λεξικό.

def flatten_json(y):
out = {}

def flatten(x, name=''):
    if type(x) is dict:
        for a in x:
            flatten(x[a], name + a + '.')
    elif type(x) is list:
        i = 0
        for a in x:
            flatten(a, name + '.')
            i += 1
    else:
        out[name[:-1]] = x

flatten(y)

return out
Δημοσιεύθηκε 27/11/2018 στις 17:36
πηγή χρήστη
Σε άλλες γλώσσες...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more