Você pode definir
check_keys
para False de acordo com a fonte
: test.insert(d,check_keys=False)
def insert(self, doc_or_docs, manipulate=True,
safe=None, check_keys=True, continue_on_error=False, **kwargs):
Funciona mesmo:
In [28]: d = {'.aaa' : '.bbb'}
In [29]: test.insert(d,check_keys=False)
Out[29]: ObjectId('54ea604bf9664e211e8ed4e6')
A docstring afirma:
Você parece ser capaz de usar qualquer caractere além dos dois
$
ou .
então um sublinhado inicial ou qualquer outro caractere seria bom e provavelmente uma opção melhor. Há informações nas perguntas frequentes sobre escapando :
E as perguntas frequentes sobre notação de ponto explicam por que usar
.
não é uma boa ideia: