我正在浏览requestsKenneth Reitz 的Python 库代码(真棒!).我遇到了一个名为的Class变量__attrs__(见下文).试图通过谷歌和SymbolHound找到它的一些东西,但没有运气.
这是标准的Python吗?我在哪里可以找到更多信息?有人可以开导我吗?
来自:https://github.com/kennethreitz/requests/blob/master/requests/sessions.py
class Session(SessionRedirectMixin):
...
__attrs__ = [
'headers', 'cookies', 'auth', 'proxies', 'hooks', 'params', 'verify',
'cert', 'prefetch', 'adapters', 'stream', 'trust_env',
'max_redirects',
]
def __init__(self):
#: A case-insensitive dictionary of headers to be sent on each
#: :class:`Request <Request>` sent from this
#: :class:`Session <Session>`.
self.headers = default_headers()
Run Code Online (Sandbox Code Playgroud) 当我改变 a 的样式时pandas.DataFrame,例如像这样
# color these columns
color_columns = ['roi', 'percent_of_ath']
(portfolio_df
.style
# color negative numbers red
.apply(lambda v: 'color: red' if v < 0 else 'color: black',
subset=color_columns)
# color selected cols light blue
.apply(lambda s: 'background-color: lightblue',
subset=color_columns))
Run Code Online (Sandbox Code Playgroud)
应用于数据框的样式不是永久性的。
为了让它们粘在一起,我可以将部件的输出分配(portfolio_df ...给同一个数据帧,如下所示:
portfolio_df = (portfolio_df ...
Run Code Online (Sandbox Code Playgroud)
portfolio_df在 Jupyter Notebook 中显示覆盖的内容,我可以看到样式精美的 DataFrame。但是尝试从模块导入的函数内更改样式,我失败了。我在函数中构造 DataFrame,更改样式,从函数返回(现在)样式化的 DataFrame,将其显示在 Jupyter Notebook 中,我看到一个非样式化的 DataFrame。
检查样式操作的返回值的类型
s = (portfolio_df.style.apply(...
我看到这个:
>>> type(s)
pandas.io.formats.style.Styler
Run Code Online (Sandbox Code Playgroud)
所以该操作不会返回一个DataFrame,而是一个...Styler对象。我错误地认为我可以将此返回值重新分配给我的原始 DataFrame,从而覆盖它并使样式更改永久化。
将样式应用于 DataFrame …
我在Python 3.6中编写了一个工具,它向几个API(带有各种端点)发送请求,并收集它们的解析来解析并将它们保存在数据库中.
我使用的API客户端具有请求URL 的同步版本,例如他们使用的
urllib.request.Request('...
或者他们使用Kenneth Reitz的Requests图书馆.
由于我的API调用依赖于请求URL的同步版本,因此整个过程需要几分钟才能完成.
现在我想将我的API调用包装在async/await(asyncio)中.我正在使用python 3.6.
我发现的所有示例/教程都要我将同步URL调用/ requests更改为异步版本(例如aiohttp).由于我的代码依赖于我未编写的API客户端(我无法更改),因此我需要保持该代码不受影响.
那么有没有办法将我的同步请求(阻塞代码)包装在async/await中以使它们在事件循环中运行?
我是Python新手中的asyncio.这在NodeJS中是不费脑子的.但是我不能用Python来解决这个问题.
显然这是版本3.0.14的问题.更新到3.0.15,问题解决了.
在OS X El Capitan中,我无法在iTerm2(Build 3.0.14)中显示unicode字符.
我已将终端仿真的字符编码设置为Unicode(UTF-8)
Preferences > Profiles > Default Profile > Terminal > Terminal emulation
但是,尽管设置正确,我仍然无法显示或粘贴德国元音变音(ä,ö,ü)到终端.
我错过了什么?
Apple的终端运行完美,但我不想从iTerm2切换.
编辑
因此,在MikeT的帮助下,我想出了将Apple Cocoa Core Data 时间戳值转换为 Unix 纪元值的方法:
SELECT datetime(559951200 + 978307200, 'unixepoch', 'localtime');
559951200我的Apple Cocoa Core 数据时间戳在哪里
然后,为了获取本地时间,我需要localtime向datetime(...)SQLite 中的函数添加一个附加参数。
ScanSnap Home我正在恢复Mac 扫描仪和文档管理器的 sqlite 数据库。
它位于~/Library/Application Support/PFU/ScanSnap Home/Managed/ScanSnapHome.sqlite
数据库有许多带有时间戳字段的表。我无法将这些时间戳值转换为日期/时间。
例如:我有一个日期值,可以在用户界面中看到它为2018-09-30。该日期值转换为559951200数据库中的值(时间戳字段)。
假设该数字是纪元值,我尝试通过https://www.epochconverter.com将其转换为日期值,但它会给我September 30, 1987
我缺少什么?
Jupyter 笔记本 (Python) 以漂亮的打印格式返回单元格中最后一个变量的值。
使用print(df)不会输出打印得很漂亮的数据帧。但这会很好地打印df到 Jupyter 笔记本上:
In[1]:
import pandas as pd
import numpy as np
filename = "Umsaetze.csv"
csv_file = f"~/Desktop/{filename}"
# read csv into DataFrame
df = pd.read_csv(csv_file, sep=";", decimal=",")
df
Run Code Online (Sandbox Code Playgroud)
如何以漂亮的打印格式打印多个变量?
这里只会df3以漂亮的打印格式打印:
In[2]:
df1
df2
df3
Run Code Online (Sandbox Code Playgroud)
这是答案(来自:在 iPython Notebook 中将 DataFrame 显示为表格)
from IPython.display import display, HTML
# Assuming that dataframes df1 and df2 are already defined:
print("Dataframe 1:")
display(df1.head())
print("Dataframe 2:")
display(df2.head())
Run Code Online (Sandbox Code Playgroud) 我开始在Mac上使用VS Code进行Python开发,但无法 pylint找不到模块。
这是我的项目文件夹结构:
project_root/
.env
.vscode/
settings.json
lib/
# lib containing necessary modules
sample/
client/
EDAMTest.py
# many more files
Run Code Online (Sandbox Code Playgroud)
我使用已安装的virtualenv pylint。虚拟环境在终端中被激活。我code从终端中的project_root文件夹中开始code .。
VS Code说它正在使用正确的解释器。我在左下角看到它说Python 3.6.1 (virtualenv)
如果我想project_root/sample/client/EDAMTest.py在终端中测试代码,可以export PYTHONPATH=../../lib; python EDAMTest.py在文件夹中通过它进行测试project_root/sample/client/。
现在,如果我使用VS Code,请打开文件EDAMTest.py,pylint告诉我它无法从导入模块lib。
现在我的问题是:
我如何添加lib到PYTHONPATH在VS代码?
我发现了几种可能的方法:
.env文件(请参阅下面的[1])。PYTHONPATH在.vscode/launch.json文件中指定(请参阅[2])我发现似乎没有可行的解决方案。
我想念什么?
[1] 环境变量定义文件
这告诉我如何定义全局(env)变量。所以我指定了这个:
PYTHONPATH="~/.virtualenvs/evernote/bin/python;lib"
但这是行不通的。不过lib小号路径没有被发现pylint
[2]因此,我确实创建了一个 …
我在Python 3代码中使用类型提示。似乎VS Code无法正确解析类型提示,因为语法突出显示被弄乱了(文档字符串未正确突出显示,注释不再被识别)。
我已经安装了所有必需的扩展名(Python和MagicPythonplus Python for VSCode)。还有什么我想念的吗?
在Python 3.5中,我试图从字典中获取值,如下所示:
data_dict.values()
# result: dict_values(['117487614', '117487614', '117487614'])
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试将其转换为列表
list(data_dict.values())
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
*** Error in argument: '(data_dict.values())'
Run Code Online (Sandbox Code Playgroud)
这些表达式正在里面执行ipdb:
ipdb> patterns_and_values
{'value_{}.mainContent_root_pwdPin': '85785226',
'value_{}.mainContent_root_txtBenutzerkennung': '85785226',
'value_{}.mainContent_root_txtRZBK': '85785226'}
ipdb> patterns_and_values.values()
dict_values(['85785226', '85785226', '85785226'])
ipdb> list(patterns_and_values.values())
*** Error in argument: '(patterns_and_values.values())'
Run Code Online (Sandbox Code Playgroud) 编辑:正如一些评论者指出的那样,它应该是^class (?!Migration)[A-Z][a-z]*。但 VS Code 抱怨:Error parsing regex near "ss (?!Migr' at character offset 9: Unrecognized flag: '!'. (Allowed flags: i, m, s, U, u, x.)
Visual Studio似乎支持负向预测(请参阅“使匹配无效”)。如果 VSCode 确实支持,则无法找到问题的答案。
在 VS Code 中,我尝试通过 .django 在 Django 项目中查找类定义Shift+Command+F。打开正则表达式搜索。现在我的搜索模式是这样的:
^class [A-Z][a-z]*
因此,每次出现“class Abc”(其中 Abc 是类名)都会被找到。
现在我想排除像class Migration(...)或这样的类class Command(...)
我尝试用否定的前瞻来做到这一点,如下所示:
^class (!?Migration)[A-Z][a-z]*
但这是行不通的。VS Code 将向我显示所有名为 的类class Migration(...),因此它不会排除它,而是会重点关注它。
我缺少什么?
python ×6
python-3.x ×3
async-await ×1
iterm2 ×1
macos ×1
pandas ×1
regex ×1
sqlite ×1
timestamp ×1