Vous pouvez définir check_keys
à False selon la source
:
test.insert(d,check_keys=False)
def insert(self, doc_or_docs, manipulate=True,
safe=None, check_keys=True, continue_on_error=False, **kwargs):
Cela fonctionne en effet :
In [28]: d = {'.aaa' : '.bbb'}
In [29]: test.insert(d,check_keys=False)
Out[29]: ObjectId('54ea604bf9664e211e8ed4e6')
La chaîne de documentation indique :
Vous semblez pouvoir utiliser n'importe quel caractère à l'exception des deux $
ou .
donc un trait de soulignement ou tout autre caractère serait bien et probablement une meilleure option.
Il y a des informations dans la FAQ sur échapper :
Et la FAQ sur la notation par points explique pourquoi utiliser .
n'est pas une bonne idée :