小编jak*_*ong的帖子

Sqlalchemy如果表不存在

我写了一个模块来创建一个空的数据库文件

def create_database():
    engine = create_engine("sqlite:///myexample.db", echo=True)
    metadata = MetaData(engine)
    metadata.create_all()
Run Code Online (Sandbox Code Playgroud)

但是在另一个函数中,我想打开myexample.db数据库,如果它还没有该表,则创建表.

我将创建的第一个后续表的EG将是:

Table(Variable_TableName, metadata,
       Column('Id', Integer, primary_key=True, nullable=False),
       Column('Date', Date),
       Column('Volume', Float))
Run Code Online (Sandbox Code Playgroud)

(因为它最初是一个空数据库,它将没有表格,但随后,我可以添加更多表格.这就是我想说的.)

有什么建议?

python sqlalchemy

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

不允许使用Selenium Compound类名

我有下面的代码点击一个元素来弹出一个屏幕并复制其中的文本

el1 = driver.find_element_by_id("keyDev-A")
el1.click()
el2 = driver.find_element_by_class_name("content")
print(el2.text)
Run Code Online (Sandbox Code Playgroud)

但是,当我试图selenium单击该弹出窗口中的按钮时

el3 = driver.find_element(By.CLASS_NAME, "action-btn cancel alert-display")
el3.click()
Run Code Online (Sandbox Code Playgroud)

它会产生一条错误消息: invalid selector: Compound class names not permitted

这是我试图selenium点击的HTML .该Close按钮.

<div class="nav">
    <span class="action-btn confirm prompt-display">Confirm</span>
    <span class="action-btn cancel prompt-display">Cancel</span>
    <span class="action-btn cancel alert-display">Close</span>
</div>
Run Code Online (Sandbox Code Playgroud)

我应该怎么写el3才能点击关闭按钮?

python selenium

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

python中括号的不同含义

我很好奇,3个不同的括号在python编程中意味着什么?我不确定这是否正确,但如果我错了请纠正我.

[] - # Normally used for dictionaries, list items
() - # Used to identify params
{} - # I have no idea what this does... 
Run Code Online (Sandbox Code Playgroud)

或者,如果这些括号可用于其他目的,欢迎任何建议!谢谢!

python brackets

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

pandas过滤和比较日期

我有一个sql文件,其中包含我读入pandas的数据.

df = pandas.read_sql('Database count details', con=engine,
                     index_col='id', parse_dates='newest_available_date')
Run Code Online (Sandbox Code Playgroud)

产量

id       code   newest_date_available
9793708  3514   2015-12-24
9792282  2399   2015-12-25
9797602  7452   2015-12-25
9804367  9736   2016-01-20
9804438  9870   2016-01-20
Run Code Online (Sandbox Code Playgroud)

下一行代码是获取上周的日期

date_before = datetime.date.today() - datetime.timedelta(days=7) # Which is 2016-01-20
Run Code Online (Sandbox Code Playgroud)

我所试图做的是,比较date_beforedf并打印出所有行小于date_before

if (df['newest_available_date'] < date_before): print(#all rows)

显然这会给我一个错误 The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我该怎么做?

python pandas

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

pandas使用新值更新dataframe行

我有一个文本文件已被读入熊猫 df1 = pandas.read_csv(r'fruits.txt', sep=',')

    item  freshness
0   apple    2.2
1   pear     0.0
Run Code Online (Sandbox Code Playgroud)

和一系列会产生结果的计算 apple = 2.3

是否可以这样做,pandas.update以便我可以更新数据框中freshnessfor 的值?apple2.3

python pandas

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

python sqlalchemy不同的列值

我的SQLite数据库中有6个表,每个表有6列(Date, user, NormalA, specialA, contact, remarks)和1000多行.

如何使用sqlalchemy对Date列进行排序以查找重复日期,并删除该行?

python sqlalchemy

7
推荐指数
1
解决办法
3289
查看次数

在现有的 sql 表中创建新列,使用来自 Pandas Dataframe 的额外列

我有几个pandas Dataframe我想写入一个SQL database. 然而,由于现有的SQL database可能不具有特别的column name,这是在pandas Dataframe,我得到一个错误信息说the column in the table was not found, thus unable to append data

# Example:

df1 
out= column1, column2, column3, column4
     value1,  value2,  value3,  value4

df2
out= columnA, columnB, columnC
     valueA,  valueB,  valueC

# Initially I concat the df together and save it into SQL
combined_data = pandas.concat([df1, df2], axis=1,
                               join='inner')
pandas.DataFrame.to_sql(combined_data, name='table1', con=engine, 
                        if_exists='append', index=False)
Run Code Online (Sandbox Code Playgroud)

但是,因为该表已经创建,包含所有列,如果 df2 有其他列,我会收到一条错误消息。

df2
out= columnA, …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy

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

Beautifulsoup导致了pandas数据帧

以下代码返回给我一个table以下结果

r = requests.get(url)
soup = bs4.BeautifulSoup(r.text, 'lxml')

mylist = soup.find(attrs={'class': 'table_grey_border'})
print(mylist)
Run Code Online (Sandbox Code Playgroud)

结果 - 它延伸了1700行

<table cellpadding="0" cellspacing="2" class="table_grey_border" width="100%">
<tr valign="top">
<td class="verd_black12" width="18%"><b>STOCK CODE</b></td>
<td class="verd_black12" width="42%"><b>NAME OF LISTED SECURITIES</b></td>
<td class="verd_black12" width="19%"><b>BOARD LOT</b></td>
<td class="verd_black12" colspan="4" width="12%"><b>REMARK</b></td>
</tr>
<tr class="tr_normal">
<td class="verd_black12" width="18%">00001</td>
<td class="verd_black12" width="42%"><a href="../../../invest/company/profile_page_e.asp?WidCoID=00001&amp;WidCoAbbName=&amp;Month=&amp;langcode=e" target="_parent">CKH HOLDINGS</a></td>
<td class="verd_black12" width="19%">500</td>
<td align="center" class="verd_black12" width="3%">#</td>
<td align="center" class="verd_black12" width="3%">H</td>
<td align="center" class="verd_black12" width="3%">O</td>
<td align="center" class="verd_black12" width="3%">F</td>
</tr>
<tr class="tr_normal">
<td class="verd_black12" width="18%">00002</td> …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup pandas

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

线机器人-如何开始

我刚刚开始使用line-bot并遵循这里的教程:https : //developers.line.biz/en/docs/messaging-api/building-bot/

但是,我仍然不明白如何与我的line app account进行连接以发送消息,并使这些消息重新出现在python中。

以下是我从line教程中复制的脚本。

from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage


app = Flask(__name__)

line_bot_api = LineBotApi('foo', timeout=20)
handler = WebhookHandler('bar')
user_profile = 'far'


@app.route("/", methods=['GET'])
def home():
    profile = line_bot_api.get_profile(user_profile)

    print(profile.display_name)
    print(profile.user_id)
    print(profile.picture_url)
    print(profile.status_message)
    return '<div><h1>ok</h1></div>'


@app.route("/callback", methods=['POST'])
def callback():
    # get X-Line-Signature header value
    signature = request.headers['X-Line-Signature']

    # get request body as text
    body …
Run Code Online (Sandbox Code Playgroud)

python direct-line-botframework

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

Python Selenium单击下一步按钮直到结束

这是我的第一个问题的后续问题,我正在尝试抓取一个网站并点击Selenium next(直到它无法点击)并收集结果.

这是带有按钮的网站的html标签:

<div class="pager results-display">
  <span class="action-btn prev inactive" data-page="1">Prev</span>
  <span class="action-btn inactive" data-page="1">1</span>  # Currently in page 1 thus inactive
  <span class="action-btn" data-page="2">2</span>
  <span class="action-btn" data-page="3">3</span> 
  <span class="action-btn" data-page="4">4</span>
  <span class="action-btn" data-page="5">5</span>
  <span class="action-btn" data-page="6">6</span>
  <span class="action-btn" data-page="7">7</span>
  <span class="action-btn" data-page="8">8</span> 
  <span class="action-btn" data-page="9">9</span>
  <span class="action-btn" data-page="10">10</span>
  <span class="action-btn" data-page="11">11</span> 
  <span class="action-btn" data-page="12">12</span>
  <span class="action-btn" data-page="13">13</span>
  <span class="action-btn" data-page="14">14</span>
  <span class="action-btn next" data-page="2">Next</span>
</div>
<div class="no-results-display hidden" style="display: none;">
                    No companies matched your …
Run Code Online (Sandbox Code Playgroud)

python selenium webdriver selenium-webdriver

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