あなたはほとんどそれを持っていました:
import json
def remove_dot_key(obj):
for key in obj.keys():
new_key = key.replace(".","")
if new_key != key:
obj[new_key] = obj[key]
del obj[key]
return obj
new_json = json.loads(data, object_hook=remove_dot_key)
ループ内で辞書を返していたので、変更するキーは1つだけです。また、値のコピーを作成する必要はありません。キーの名前を変更するだけです。