小编sor*_*tas的帖子

如何修复Jupyter中pandas的tqdm progress_apply?

真的不明白它是一个错误或者只是我的局部问题,仍然有一些问题与使用tqdm进度条progress_apply在Jupyter.

第一次尝试:

from tqdm import tqdm
tqdm_notebook.pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Run Code Online (Sandbox Code Playgroud)

输出(没有任何条形):

AttributeError: 'function' object has no attribute 'pandas'
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

from tqdm import tqdm
tqdm_notebook().pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Run Code Online (Sandbox Code Playgroud)

输出: 两个条(需要一个).第一个栏是空的(0:[00:00,?it/s]),第二个是OK.

任何想法如何更改progress_apply描述和显示栏没有空的初始化栏?:)

PS 文档(https://github.com/tqdm/tqdm)说我可以使用tqdm_notebook,但它对我不起作用:)

# Register `pandas.progress_apply` and `pandas.Series.map_apply` with `tqdm`
# (can use `tqdm_gui`, `tqdm_notebook`, optional kwargs, etc.)
tqdm.pandas(desc="my bar!")
Run Code Online (Sandbox Code Playgroud)

pandas ipython-notebook jupyter jupyter-notebook tqdm

10
推荐指数
5
解决办法
7166
查看次数

如何在不重新加载页面的情况下刷新 Selenium Webdriver DOM 数据?

我使用 Selenium 和 Python 来解析来自数据库站点的搜索结果。搜索输出是动态的,因此,当我输入新请求时,页面不会重新加载,但搜索结果是新的。

问题是 Selenium 不会更新 WebDriver DOM 数据,所以下次我尝试类似driver.find_elements_by_class_name('query_header')我从以前的搜索请求和StaleError.

使用WebDriverWait(driver, timeout).until(element_present)没有帮助。元素在那里(所有搜索结果块都有相同的类、名称等),但它们很旧:)

我通过driver.refresh()在每次请求后重新加载页面来修复它,但它看起来有点不自然+双重请求。

有没有办法刷新 Selenium DOM 数据,这样我就可以在find_elements不重新加载页面的情况下获得新元素?

python selenium webdriver python-3.x selenium-webdriver

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

如何在 Celery Worker 中正确连接 mongodb?

学习 Celery,阅读Celery 最佳实践,并有一个关于 Celery 数据库使用的非常简单的问题。

德尼·贝尔托维奇 说:

您不应将数据库对象(例如您的用户模型)传递给后台任务,因为序列化对象可能包含过时的数据。

那么,如果我想连接到工作人员中的数据库,正确的选择是什么:

@app.task
def add(x, y, collection):
    client = MongoClient('mongodb://localhost:27017/')
    db = client.wakawaka
    db[collection].insert_one({'sum':x+y})
    return True
Run Code Online (Sandbox Code Playgroud)

或者:

client = MongoClient('mongodb://localhost:27017/')
db = client.wakawaka

@app.task
def add(x, y, collection):
    db[collection].insert_one({'sum':x+y})
    return True
Run Code Online (Sandbox Code Playgroud)

UPD:我可以close()在每个任务结束时连接 mongodb,因此每次我需要某些东西时,任务都会连接到新的数据库,并且不会浪费资源。不过,我需要多次打开/关闭数据库连接吗?或者我可以连接一次并以某种方式刷新连接以检索新版本的数据库?

python mongodb celery pymongo celery-task

6
推荐指数
1
解决办法
4352
查看次数

Flask SQLAlchemy:如何添加依赖于另一个表的列?

我的 SQLAlchemy 数据库中有三个表(使用 Flask SQLAlchemy):产品、产品变体和订单。我想在订单中查看包含哪些产品及其变体。

它适用于关系/外键,但主要问题是:如果我将产品添加到订单中,我仍然可以添加其他产品的变体(使用 Flask-Admin,或仅使用 Flask shell)。

所以,主要问题是:如何在表之间创建连接,以便只有当它们是订单产品的变体时才能添加变体?谢谢 :)

另一个解决方案:如何将列添加到 Orders 表,以便根据变体 ID 从 Product 表中获取产品名称?我尝试使用column_property, Post.query.get(variation_id), variation.parent_id, backhrefvariation.origin_product但没有任何成功:)

我的模型:

产品(如三星 Galaxy 7)

class Product(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120), index=True)
    brand = db.Column(db.String(120))
    variations = db.relationship('Variation', backref='origin_product', lazy='dynamic')
    orders = db.relationship('Order', backref='product_in_order', lazy='dynamic')
Run Code Online (Sandbox Code Playgroud)

产品变化(如三星 Galaxy 7 Blue 32GB)

class Variation(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120), index=True)
    price = db.Column(db.Integer)
    product_id = db.Column(db.Integer, db.ForeignKey('product.id')) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy flask-admin

6
推荐指数
1
解决办法
3357
查看次数

如何获取固定单元格值而不是公式?

我在 Google 表格中有一个单元格,=NOW()里面有公式。我所需要的只是 - 获取由公式 (22.01.2014 15:23:51) 生成的值,而不是公式本身。

如果我尝试:var nowtime = SpreadsheetApp.getActiveSheet().getRange('A1').getValues();
我得到={DATE(2014\1\22)+TIME(15\19\13)},但不是数字。

如何使用 Google Script 语法来做到这一点?

google-sheets google-apps-script

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

如何在Python 3.6中使用不同值类型的Dict进行静态类型检查?

尝试在Python代码中使用静态类型,这样mypy可以帮助我解决一些隐藏的错误.使用单个变量非常简单

real_hour: int = lower_hour + hour_iterator
Run Code Online (Sandbox Code Playgroud)

更难以将它与列表和词典一起使用,需要导入额外的typing库:

from typing import Dict, List
hour_dict: Dict[str, str] = {"test_key": "test_value"}
Run Code Online (Sandbox Code Playgroud)

但主要问题 - 如何使用不同值类型的Dicts,如:

hour_dict = {"test_key": "test_value", "test_keywords": ["test_1","test_2"]}
Run Code Online (Sandbox Code Playgroud)

如果我不对这样的词典使用静态类型 - mypy会显示错误,例如:

len(hour_dict['test_keywords'])
- Argument 1 to "len" has incompatible type
Run Code Online (Sandbox Code Playgroud)

那么,我的问题是:如何在这些词典中添加静态类型?:)

python static-typing python-3.x mypy

3
推荐指数
2
解决办法
2122
查看次数

如果我不需要得到回复,如何使用Wordpress wp_remote_post?

用于wp_remote_post将表单数据 ( Contact Form 7) 发送到外部 API (CRM)。API 很重(检查电子邮件、确认信等),所以我不希望 PHP 在等待响应时阻止任何进程(我根本不需要响应,只需发送)。

\n\n

尽管如此,即使'blocking' => false它确实 \xe2\x80\x94 如果我在外部 API 上激活确认电子邮件,Wordpress 用户也需要等待几秒钟才能处理表单。

\n\n

我究竟做错了什么?:) 代码:

\n\n
// POST-request to API\nwp_remote_post('http://crm.site.com/get_record', array(\n    'timeout' => 5,\n    'redirection' => 5,\n    'httpversion' => '1.0',\n    'blocking' => false,\n    'headers' => array() ,\n    'body' => $send_data,\n    'cookies' => array()\n));\n
Run Code Online (Sandbox Code Playgroud)\n

php wordpress contact-form-7

2
推荐指数
1
解决办法
7455
查看次数