Использовать значение переменной в качестве индекса объекта

Я написал простую функцию, которая сериализует словари в xml (до 30 строк).

Использование:

mydict = {
    'name': 'The Andersson\'s',
    'size': 4,
    'children': {
        'total-age': 62,
        'child': [
            {
                'name': 'Tom',
                'sex': 'male',
            },
            {
                'name': 'Betty',
                'sex': 'female',
            }
        ]
    },
}
print(dict2xml(mydict, 'family'))

Результат:


        
                
                
        

Полный источник (включая пример) можно найти на странице https://gist.github.com/reimund/5435343/

Примечание. Эта функция будет сериализовать словарные записи как атрибуты а не текстовые узлы. Модифицировать его для поддержки текста было бы очень легко.

1
задан skerit 27 July 2010 в 19:43
поделиться

2 ответа

userPosition.uid, вероятно, не работает. Вам также не хватает закрывающей скобки.

Вот минимальный пример, который показывает, что концепция работает. Если у вас работает userPosition.uid, то ваш пример хорош. Проверьте, что вы можете вывести только userPosition.uid.

a = {}
b = {c: 3}
a[b.c] = 5
a  // now equal to {3: 5}
2
ответ дан 2 September 2019 в 22:40
поделиться
animatedObjects = {
    userPosition.uid: { // pos 1
    "uid": userPosition.uid, // pos2
          "x": 30,
          "y": 31
     }
}

Это не может работать. Во-первых, в позиции 1 вы, вероятно, имеете в виду

animatedObjects = {
    userPosition:{
        uid : 
    }
}

иначе вы создаете animatedObjects['userPosition.uid'] вместо animatedObjects.userPosition.uid.

Во-вторых, в позиции 2 вы пытаетесь инициализировать переменную объектом, который только что создали. Это не может сработать, так как нет ссылки для передачи. (В обычном объекте нет контекста this, вы можете передавать их по ссылке только при создании, но не во время создания).

0
ответ дан 2 September 2019 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: