小编Not*_*tMe的帖子

为 pytest 模拟 Sqlalchemy 会话

我不知道这是否可以完成,但我正在尝试模拟我的 db.session.save。

我正在使用烧瓶和烧瓶炼金术。

数据库文件

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
Run Code Online (Sandbox Code Playgroud)

单元测试

def test_post(self):
    with app.app_context():
        with app.test_client() as client:
            with mock.patch('models.db.session.save') as mock_save:
                with mock.patch('models.db.session.commit') as mock_commit:

                    data = self.gen_legend_data()
                    response = client.post('/legends', data=json.dumps([data]), headers=access_header)

                    assert response.status_code == 200
                    mock_save.assert_called()
                    mock_commit.assert_called_once()
Run Code Online (Sandbox Code Playgroud)

和方法:

def post(cls):
    legends = schemas.Legends(many=True).load(request.get_json())

    for legend in legends:
        db.session.add(legend)

    db.session.commit()

    return {'message': 'legends saved'}, 200
Run Code Online (Sandbox Code Playgroud)

我正在尝试模拟 db.session.add 和 db.session.commit。我试过db.session.savelegends.models.db.session.savemodels.db.session.save。他们都带着保存错误回来了:

ModuleNotFoundError: No module named 'models.db.session'; 'models.db' is not a package
Run Code Online (Sandbox Code Playgroud)

我没有收到错误,也不知道如何解决。 …

python sqlalchemy mocking pytest flask-sqlalchemy

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

如何从ASP.NET Web API读取XML?

我有一个Web API,它将读取XML并将其传递给适当的模型进行处理.

我怎样才能收到即将发布的XML?我应该使用哪种数据类型?

什么时候使用StreamReader,StreamContent或者XmlDocument还是其他?

c# asp.net-web-api

11
推荐指数
2
解决办法
2万
查看次数

将流式 JSON 转换为 DataFrame

问题:如何将 JSON 字符串转换为 DataFrame 并仅选择我想要的键?

我上周刚刚开始使用 Spark,我仍在学习中,所以请耐心等待。

我正在使用 Spark(2.4) 结构化流。Spark 应用程序从 Twitter 流中获取数据(通过套接字),发送的数据是完整的 Twitter JSON 字符串。下面是其中一个数据帧。每一行都是完整的 JSON 推文。

+--------------------+
|               value|
+--------------------+
|{"created_at":"Tu...|
|{"created_at":"Tu...|
|{"created_at":"Tu...|
+--------------------+
Run Code Online (Sandbox Code Playgroud)

正如 Venkata 所建议的,我这样做了,翻译成 python(完整代码如下)

schema = StructType().add('created_at', StringType(), False).add('id_str', StringType(), False)
df = lines.selectExpr('CAST(value AS STRING)').select(from_json('value', schema).alias('temp')).select('temp.*')
Run Code Online (Sandbox Code Playgroud)

这是返回值

+------------------------------+-------------------+
|created_at                    |id_str             |
+------------------------------+-------------------+
|Wed Feb 20 04:51:18 +0000 2019|1098082646511443968|
|Wed Feb 20 04:51:18 +0000 2019|1098082646285082630|
|Wed Feb 20 04:51:18 +0000 2019|1098082646444441600|
|Wed Feb 20 04:51:18 +0000 2019|1098082646557642752|
|Wed Feb 20 04:51:18 +0000 2019|1098082646494797824|
|Wed …
Run Code Online (Sandbox Code Playgroud)

python-3.x apache-spark pyspark spark-structured-streaming

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

flask_jwt_extended 在解码我的 JWT 时抛出错误。我怎样才能捕捉到它?

我在尝试在我的应用程序中捕获格式错误的 JWT 错误时遇到问题。

我正在使用 flask_jwt_extended 并且当我发送手动创建的 JWT 时。我收到此错误消息:

Error on request:
Traceback (most recent call last):
  File "/Users/desmondlim/.virtualenvs/rest-api/lib/python3.7/site-packages/jwt/api_jws.py", line 180, in _load
    signing_input, crypto_segment = jwt.rsplit(b'.', 1)
ValueError: not enough values to unpack (expected 2, got 1)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/desmondlim/.virtualenvs/rest-api/lib/python3.7/site-packages/flask_restful/__init__.py", line 266, in error_router
    return self.handle_error(e)
  File "/Users/desmondlim/.virtualenvs/rest-api/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/desmondlim/.virtualenvs/rest-api/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/desmondlim/.virtualenvs/rest-api/lib/python3.7/site-packages/flask_restful/__init__.py", line 458, …
Run Code Online (Sandbox Code Playgroud)

python-3.x jwt flask-restful flask-jwt-extended

5
推荐指数
2
解决办法
2804
查看次数