Не проще ли всегда устанавливать ключи в нижний регистр? Это гарантирует, что новый ключ в нижнем регистре будет конфликтовать с другим, что указывает на то, что ключ используется.
Если фактический регистр строки имеет значение, то используйте строчную строку в качестве ключа и сохраните ее как часть значения, скажем (нотация словаря Python / JSON):
{
"my key":
{
"original":"My KeY",
"content":"Original content"
},
"other key":
{
"original":"OthEr KeY",
"content":"Original content"
}
}