Mise en forme de chaîne [str.format()] avec une clé de dictionnaire qui est un str() d'un certain nombre

Python néophyte ici. Je me demandais si quelqu'un pouvait m'aider avec le KeyError je suis arriver lors de l'utilisation d'un dictionnaire de la chaîne d'interpolation dans str.format.

dictionary = {'key1': 'val1', '1': 'val2'}

string1 = 'Interpolating {0[key1]}'.format(dictionary)
print string1

Ci-dessus fonctionne très bien et les rendements:

Interpolating val1

Cependant procédant de la manière suivante:

dictionary = {'key1': 'val1', '1': 'val2'}

string2 = 'Interpolating {0[1]}'.format(dictionary)
print string2

résultats dans:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    string2 = 'Interpolating {0[1]}'.format(dictionary)
KeyError: 1L

Donc le problème semble être dans l'interprétation de la touche numérique comme un indice de la liste, à mon humble avis. Est-il possible de contourner ce problème? (c'est à dire transmettre que c'est plutôt une clé de dictionnaire)

TIA et toutes mes excuses si cette question a été posée avant(ne pouvait pas trouver quelque chose de pertinent à ma recherche-fu).

Edit 1: La clé n'est pas numérique, comme il a été erronément indiqué, plus tôt. C'est plutôt une représentation de chaîne d'un nombre - comme l'a souligné BrenBarn.

Est-il une raison pour laquelle vous ne voulez pas le faire comme string2 = 'Interpolating {}'.format(dictionary['1']) ?
La manière habituelle d'utiliser le format serait 'Interpolating {key1}'.format(**dictionary)
kobejohn: Dans le contexte, je suis en utilisant cette interpolation, il est opportun de le faire, comme mentionné dans la question. Depuis que je suis ensuite l'utiliser pour accéder à un attribut(c'est à dire quelque chose comme '{0[1].some_attr}'.format({'1' : someobj})
Juste pour s'assurer que les choses sont claires, comme BrenBarn noté votre exemple ne pas utiliser sur une touche numérique. Il utilise la chaîne '1' comme la clé. Vous devrez changer votre dict {1: someobj}.
kobejohn: Vrai. J'ai mis à jour la question/description. Encore solliciter des solutions de contournement pour la chaîne-de la représentation-de-chiffres-clés-en-interpolation-dictionnaires problème(le cas échéant).

OriginalL'auteur decimus phostle | 2012-06-21