我有一个需要加载到 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 新手(使用它不到一周)