У меня есть файл json(~3Gb ), которые мне нужно загрузить в mongodb. Довольно много ключей 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 должен перебирать все ключи, если ключ содержит точку, создавать копию, заменять точку пробелом и возвращать копию. Создал копию dataPart, так как не уверен, смогу ли я перебирать ключи dataPart и одновременно вставлять/удалять пары ключ-значение.
Кажется, здесь ошибка, все json-ключи с точкой в них не редактируются. Я не очень понимаю, как работает json.load. Также я новичок в python (, использую его менее недели )
-. 121 ---1036777-Функция в javascript формирует замыкание, сохраняя (скрытую )ссылку на объемлющую ее область.
Можно ли получить к нему доступ программно, когда у нас есть функция (в качестве значения переменной )?
Настоящая цель является теоретической, но демонстрация может состоять в том, чтобы перечислить свойства замыкания.
var x = (function(){
var y = 5;
return function() {
alert(y);
};
})();
//access y here with x somehow