小编Ram*_*Ram的帖子

使用 Presto 从数据构建 json

如果我的表中有数据如下

WITH dataset AS (
  SELECT ARRAY[
    CAST(ROW('Bob', 38) AS ROW(name VARCHAR, age INTEGER)),
    CAST(ROW('Alice', 35) AS ROW(name VARCHAR, age INTEGER)),
    CAST(ROW('Jane', 27) AS ROW(name VARCHAR, age INTEGER))
  ] AS users,
  CAST(ROW('Google') AS ROW(company VARCHAR)) AS company
)
SELECT * FROM dataset
Run Code Online (Sandbox Code Playgroud)

预期格式如下:

{
    "company": "Google",
    "users": [
        {
            "name": "Bob",
            "age": 38
        },
        {
            "name": "Alice",
            "age": 35
        },
        {
            "name": "Jane",
            "age": 27
        }

    ]
}
Run Code Online (Sandbox Code Playgroud)

如何构造从该数据中提取的 JSON?

sql json hierarchical-data presto amazon-athena

5
推荐指数
1
解决办法
5060
查看次数

在python中模拟全局变量

我在主模块中有一个函数,它接受两个值并对它们执行操作。这使用在调用此函数之前创建的全局变量

def calc(keys,values):
    if globalvar == "calc":
        return sum(keys)
    else:
        return sum(values)
Run Code Online (Sandbox Code Playgroud)

现在正在单元测试中

class Testcalc(TestCase):
@mock.patch('module.globalvar ', "calc")
def test_unit(self,calc):
    keys=[1,2,3]
    values=[4,5,6]
    sum=module.calc(keys,values)
    """
    check asserts
    """
Run Code Online (Sandbox Code Playgroud)

我收到无效参数的类型错误。

TypeError('test_unit() takes exactly 2 arguments (1 given)',)
Run Code Online (Sandbox Code Playgroud)

谁能告诉我模拟全局变量的正确方法

更新:这对我有用,不知道为什么

class Testcalc(TestCase):
@mock.patch('module.globalvar')
def test_unit(self,var):
    keys=[1,2,3]
    values=[4,5,6]
    var="calc"
    sum=module.calc(keys,values)
    """
    check asserts
    """
Run Code Online (Sandbox Code Playgroud)

谢谢大家

python unit-testing mocking python-2.7 python-unittest

4
推荐指数
1
解决办法
1万
查看次数