Проще (на мой взгляд) решение состоит в том, чтобы создать новый словарь и обновить его с содержимым старого:
my_dict={'a':1}
my_copy = {}
my_copy.update( my_dict )
my_dict['a']=2
my_dict['a']
Out[34]: 2
my_copy['a']
Out[35]: 1
Проблема с этим подходом заключается в том, что он не может быть «глубоким» достаточно'. то есть не рекурсивно глубока. достаточно для простых объектов, но не для вложенных словарей. Вот пример, где он может быть недостаточно глубоким:
my_dict1={'b':2}
my_dict2={'c':3}
my_dict3={ 'b': my_dict1, 'c':my_dict2 }
my_copy = {}
my_copy.update( my_dict3 )
my_dict1['b']='z'
my_copy
Out[42]: {'b': {'b': 'z'}, 'c': {'c': 3}}
Используя Deepcopy (), я могу устранить полу-мелкое поведение, но я думаю, что нужно решить, какой подход подходит для вашего приложения. В большинстве случаев вам может быть безразлично, но нужно знать о возможных ловушках ... окончательный пример:
import copy
my_copy2 = copy.deepcopy( my_dict3 )
my_dict1['b']='99'
my_copy2
Out[46]: {'b': {'b': 'z'}, 'c': {'c': 3}}
вам придется использовать лямбды со следующими now.json
{
"version": 2,
"builds": [
{ "src": "package.json", "use": "@now/next" },
{ "src": "lambda_file.js", "use": "@now/node"}
],
"routes": [
{ "src": "api_route", "dest": "lambda_file.js"}
]
}
Попробуйте использовать @now/node-server
или @now/node builder
внутри now.json
{
"version": 2,
"builds": [{ "src": "package.json", "use": "@now/node-server" }]
}
, поскольку @now/next
используется для Next .js apps
Надеюсь, это поможет!