Обновление: теперь есть библиотека: https://pypi.org/project/dynamodb-json/
Вот улучшенная версия ответ indiangolfer . Хотя решение indiangolfer работает для этого вопроса, эта улучшенная версия может быть более полезной для других, которые наткнулись на этот поток.
def unmarshal_dynamodb_json(node):
data = dict({})
data['M'] = node
return _unmarshal_value(data)
def _unmarshal_value(node):
if type(node) is not dict:
return node
for key, value in node.items():
# S – String - return string
# N – Number - return int or float (if includes '.')
# B – Binary - not handled
# BOOL – Boolean - return Bool
# NULL – Null - return None
# M – Map - return a dict
# L – List - return a list
# SS – String Set - not handled
# NN – Number Set - not handled
# BB – Binary Set - not handled
key = key.lower()
if key == 'bool':
return value
if key == 'null':
return None
if key == 's':
return value
if key == 'n':
if '.' in str(value):
return float(value)
return int(value)
if key in ['m', 'l']:
if key == 'm':
data = {}
for key1, value1 in value.items():
if key1.lower() == 'l':
data = [_unmarshal_value(n) for n in value1]
else:
if type(value1) is not dict:
return _unmarshal_value(value)
data[key1] = _unmarshal_value(value1)
return data
data = []
for item in value:
data.append(_unmarshal_value(item))
return data
Это улучшено следующими способами:
Редактировать: исправить рекурсивный объект ошибка
vue.config.js
не определяет автоматически окружающую среду. Как сказано в , в документации по конфигурации Vue CLI :
Если вам нужно условное поведение в зависимости от среды или вы хотите напрямую изменить конфигурацию, используйте функцию ленивый вычисляется после установки переменных env). Функция получает разрешенный конфиг в качестве аргумента. Внутри функции вы можете либо изменить конфигурацию напрямую, либо вернуть объект, который будет объединен.
blockquote>Как на самом деле это сделать, мне не сразу было понятно. Вот что в итоге сработало:
const fs = require('fs') module.exports = { configureWebpack: config => { if (process.env.NODE_ENV !== 'production') { config.devServer = { host: 'qzuku.test', // https://medium.freecodecamp.org/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec https: { key: fs.readFileSync('./qzukuDevServer.key'), cert: fs.readFileSync('./qzukuDevServer.crt'), ca: fs.readFileSync(process.env.HOME + '/.ssh/rootDevCA.pem') } } } } }
Надеюсь, это поможет!