我有一个需要加载到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的新手(使用它不到一周)
您几乎拥有它:
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)
您正在循环中返回字典,因此只需修改一个键。而且您不需要复制值,只需重命名键即可。
问题内容: 在使用以下代码初始化时,我拼错了名称: 我实际上打算用名称创建环境。尝试将文件夹重命名为时,我发现这没有太大帮助。激活环境的名称仍重命名旧的。 我想知道如何重命名环境? 问题答案: 默认情况下,virtualenv不支持环境重命名。仅删除virtualenv目录并使用正确的名称创建一个新目录是更安全的。您可以通过以下方式做到这一点: 激活您的virtualenv: 创建当前安装的软件包
问题内容: 当我在名为$ tags的变量(多维数组)上进行var_dump时,会得到以下信息: 我想将所有名为“ url”的数组键重命名为“值”。什么是做到这一点的好方法? 问题答案: 您可以用来做。
问题内容: 我想像djangoproject.com上的这张票一样执行相同的操作,但是具有一些附加格式。从这个查询 我想得到这样的东西: 是否有另一种更内置的方法,还是我必须手动执行此操作? 问题答案: 这有点hacky,但是你可以使用以下extra方法: 这基本上是在SQL中完成的。 如果你始终想要重命名的版本,但是数据库具有神秘名称,则另一种选择是使用新名称命名字段,但用于db_column引
问题内容: 我想重命名索引。我看过alter table文档,但无法弄清楚简单地重命名索引的语法。通过MySQL GUI进行操作时,它将删除索引并创建一个新索引。在这种情况下,我希望避免仅为了更改索引名称而重建整个索引。 [附加信息] 在alter table文档中指出 可以通过更改表的.frm文件而不接触表内容来立即进行仅修改表元数据而不修改表数据的更改。以下更改是可以通过这种方式进行的快速更改
本文向大家介绍如何在MongoDB中重命名集合?,包括了如何在MongoDB中重命名集合?的使用技巧和注意事项,需要的朋友参考一下 要在MongoDB中重命名集合,可以使用方法。语法如下- 为了理解上述语法,让我们列出数据库样本中的所有集合。查询如下- 以下是输出- 现在,将集合名称“ informationAboutDelete”更改为“ deleteSomeInformation”。查询如下以
我正在尝试重命名数据库中表中的列。我已经试过了 我收到了一个错误回复,回复是-;请问这句话的正确语法是什么?谢谢