mongodb にロードする必要がある json ファイル ( ~3Gb ) があります。かなりの数の json キーに . (ドット)、mongodb への読み込みが失敗します。私はjsonファイルをロードし、その過程でキー名を編集したい.ドットを空のスペースに置き換えたい. 次の python コードを使用する
import json
def RemoveDotKey(dataPart):
for key in dataPart.iterkeys():
new_key = key.replace(".","")
if new_key != key:
newDataPart = deepcopy(dataPart)
newDataPart[new_key] = newDataPart[key]
del newDataPart[key]
return newDataPart
return dataPart
new_json = json.loads(data, object_hook=RemoveDotKey)
RemoveDotKey と呼ばれる object_hook は、キーにドットが含まれている場合、すべてのキーを反復処理し、コピーを作成し、ドットをスペースに置き換えて、コピーを返します。dataPart のキーを反復処理し、同時にキーと値のペアを挿入/削除できるかどうかわからないため、dataPart のコピーを作成しました。
ここにエラーがあるようです。ドットが含まれるすべての json キーが編集されていません。json.load がどのように機能するかはよくわかりません。また、Pythonは初めてです(使用して1週間未満です)