Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

1
无法让我的脚本自动生成一些要在有效负载中使用的值
我创建了一个脚本,可通过随后发送两个https请求从目标页面获取html元素。我的脚本可以完美地完成任务。但是,我必须复制chrome开发工具中的四个值以填充其中的四个键payload,以便发送最终的http请求到达目标页面。这是起始链接,下面是有关如何到达目标页面的说明。 单击Find Hotel按钮(如果chek-out默认情况下check-in日期比日期长至少一天,则无需更改日期)。 勾选下图所示的框,然后Book Now按其上方的按钮。现在,它将引导您自动进入目标页面。 到达标题为的目标页面后Enter Guest Details,从此处解析html元素 我已经尝试过(使用一个): import requests from bs4 import BeautifulSoup url = 'https://booking.discoverqatar.qa/SearchHandler.aspx?' second_url = 'https://booking.discoverqatar.qa/PassengerDetails.aspx?' params = { 'Module':'H','txtCity':'','hdnCity':'2947','txtHotel':'','hdnHotel':'', 'fromDate':'05/11/2019','toDate':'07/11/2019','selZone':'','minSelPrice':'', 'maxSelPrice':'','roomConfiguration':'2|0|','noOfRooms':'1', 'hotelStandardArray':'63,60,54,50,52,51','CallFrom':'','DllNationality':'-1', 'HdnNoOfRooms':'-1','SourceXid':'MTEzNzg=','mdx':'' } payload = { 'CallFrom':'MToxNjozOCBQTXxCMkN8MToxNjozOCBQTQ==', 'Btype':'MToxNjozOCBQTXxBfDE6MTY6MzggUE0=', 'PaxConfig':'MToxNjozOCBQTXwyfDB8MnwwfHwxOjE2OjM4IFBN', 'usid':'MToxNjozOCBQTXxoZW54dmkzcWVnc3J3cXpld2lsa2ZwMm18MToxNjozOCBQTQ==' } with requests.Session() as s: r = s.get(url,params=params,headers={"User-agent":"Mozilla/5.0"}) res = s.get(second_url,params=payload,headers={ "User-agent":"Mozilla/5.0", "Referer":r.url …

2
如何使用SWIG将numpy数组转换为vector <int>&(reference)
我的目标: 在python中创建3个numpy数组(其中2个将使用特定的值初始化),然后通过swig将所有三个数组发送到c ++函数中作为矢量引用(这是为了避免复制数据和失去效率)。进入c ++函数后,将两个数组相加,然后将它们的总和放在第三个数组中。 vec_ref.h #include &lt;vector&gt; #include &lt;iostream&gt; void add_vec_ref(std::vector&lt;int&gt;&amp; dst, std::vector&lt;int&gt;&amp; src1, std::vector&lt;int&gt;&amp; src2); vec_ref.cpp #include "vec_ref.h" #include &lt;cstring&gt; // need for size_t #include &lt;cassert&gt; void add_vec_ref(std::vector&lt;int&gt;&amp; dst, std::vector&lt;int&gt;&amp; src1, std::vector&lt;int&gt;&amp; src2) { std::cout &lt;&lt; "inside add_vec_ref" &lt;&lt; std::endl; assert(src1.size() == src2.size()); dst.resize(src1.size()); for (size_t i = 0; …
10 python  c++  numpy  vector  swig 

2
为什么在类上设置描述符会覆盖描述符?
简单再现: class VocalDescriptor(object): def __get__(self, obj, objtype): print('__get__, obj={}, objtype={}'.format(obj, objtype)) def __set__(self, obj, val): print('__set__') class B(object): v = VocalDescriptor() B.v # prints "__get__, obj=None, objtype=&lt;class '__main__.B'&gt;" B.v = 3 # does not print "__set__", evidently does not trigger descriptor B.v # does not print anything, we overwrote the …

8
numpy:将1d数组的元素的索引作为2d数组获取
我有一个像这样的numpy数组: [1 2 2 0 0 1 3 5] 是否可以将元素的索引获取为二维数组?例如,上述输入的答案将是[[3 4], [0 5], [1 2], [6], [], [7]] 当前,我必须循环不同的值并numpy.where(input == i)为每个值调用,这在输入足够大的情况下性能很差。

1
在pyshark中计算TCP重传
据我所知pyshark是tshark的Python包装器,tshark是Wireshark的命令行版本。由于Wireshark和tshark允许检测TCP重传,因此我想知道如何使用pyshark实现该功能。我找不到任何好的文档,所以不确定是否可以这样做,还是无法找到正确的方法。谢谢!
10 python  tcp  tshark  pyshark 

2
将GridSearchCV与IsolationForest结合使用以查找异常值
我想IsolationForest用于发现异常值。我想使用找到最佳模型参数GridSearchCV。问题是我总是得到相同的错误: TypeError: If no scoring is specified, the estimator passed should have a 'score' method. The estimator IsolationForest(behaviour='old', bootstrap=False, contamination='legacy', max_features=1.0, max_samples='auto', n_estimators=100, n_jobs=None, random_state=None, verbose=0, warm_start=False) does not. 似乎是一个问题,因为IsolationForest没有score方法。有没有办法来解决这个问题?还可以找到隔离林的分数吗?这是我的代码: import pandas as pd from sklearn.ensemble import IsolationForest from sklearn.model_selection import GridSearchCV df = pd.DataFrame({'first': [-112,0,1,28,5,6,3,5,4,2,7,5,1,3,2,2,5,2,42,84,13,43,13], 'second': [42,1,2,85,2,4,6,8,3,5,7,3,64,1,4,1,2,4,13,1,0,40,9], 'third': [3,4,7,74,3,8,2,4,7,1,53,6,5,5,59,0,5,12,65,4,3,4,11], …

3
Python与Julia的速度比较
我试图比较这两个片段,看看在一秒钟内可以完成多少次迭代。事实证明,Julia实现了250万次迭代,而Python实现了400万次迭代。朱莉娅不是应该更快吗?或者这两个片段不相等? 蟒蛇: t1 = time.time() i = 0 while True: i += 1 if time.time() - t1 &gt;= 1: break 朱莉娅: function f() i = 0 t1 = now() while true i += 1 if now() - t1 &gt;= Base.Dates.Millisecond(1000) break end end return i end
9 python  julia 

1
matplotlib混合框中的十六进制大小基于附近点的密度
我有以下代码,产生下图 import numpy as np np.random.seed(3) import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame() df['X'] = list(np.random.randint(100, size=100)) + list(np.random.randint(30, size=100)) df['Y'] = list(np.random.randint(100, size=100)) + list(np.random.randint(30, size=100)) df['Bin'] = df.apply(lambda row: .1 if row['X'] &lt; 30 and row['Y'] &lt; 30 else .9, axis=1) fig, ax = …

3
基于深度信息的字典到多级字典的列表
我有一些数据,或多或少是这样的: [ {"tag": "A", "level":0}, {"tag": "B", "level":1}, {"tag": "D", "level":2}, {"tag": "F", "level":3}, {"tag": "G", "level":4}, {"tag": "E", "level":2}, {"tag": "H", "level":3}, {"tag": "I", "level":3}, {"tag": "C", "level":1}, {"tag": "J", "level":2}, ] 我想将其转换为基于深度级别(键“级别”)的多级字典: { "A": {"level": 0, "children": { "B": {"level": 1, "children": { "D": {"level": 2, "children": { …

1
仅当使用Python中的DAG在AWS athena表中可用的新分区/数据可用时,如何触发Airflow任务?
我有一个如下的场景: 仅在源表(Athena)中有新数据可用时才触发Task 1和Task 2。一天中进行新的数据分区时,应该触发Task1和Task2。 触发Task 3仅完成Task 1和Task 2 Task 4仅触发完成Task 3 我的密码 from airflow import DAG from airflow.contrib.sensors.aws_glue_catalog_partition_sensor import AwsGlueCatalogPartitionSensor from datetime import datetime, timedelta from airflow.operators.postgres_operator import PostgresOperator from utils import FAILURE_EMAILS yesterday = datetime.combine(datetime.today() - timedelta(1), datetime.min.time()) default_args = { 'owner': 'airflow', 'depends_on_past': False, 'start_date': yesterday, 'email': FAILURE_EMAILS, …

2
如何使用Faust Python软件包将kafka主题与Web端点连接?
我有一个简单的应用程序,具有两个功能,一个用于收听主题,另一个用于Web端点。我想创建服务器端事件流(SSE),即文本/事件流,以便在客户端可以使用EventSource收听它。 我现在有以下代码,其中每个功能都在执行其特定的工作: import faust from faust.web import Response app = faust.App("app1", broker="kafka://localhost:29092", value_serializer="raw") test_topic = app.topic("test") @app.agent(test_topic) async def test_topic_agent(stream): async for value in stream: print(f"test_topic_agent RECEIVED -- {value!r}") yield value @app.page("/") async def index(self, request): return self.text("yey") 现在,我要在索引中输入类似以下代码的内容,但是使用费力: import asyncio from aiohttp import web from aiohttp.web import Response from …


1
Django可能会在不久的将来运行任务
假设我有一个模型Event。活动结束后,我想向所有受邀用户发送通知(电子邮件,推送等)。类似于以下内容: class Event(models.Model): start = models.DateTimeField(...) end = models.DateTimeField(...) invited = models.ManyToManyField(model=User) def onEventElapsed(self): for user in self.invited: my_notification_backend.sendMessage(target=user, message="Event has elapsed") 现在,当然,关键的是onEventElapsed何时调用timezone.now() &gt;= event.end。请记住,end距离当前日期可能要几个月。 我考虑过两种基本方法: 使用定期cron作业(例如,每五分钟左右一次),该作业检查最近五分钟内是否发生了任何事件并执行我的方法。 使用celery并计划onEventElapsed使用eta将来要运行的参数(在models save方法中)。 考虑选项1,可能的解决方案可能是django-celery-beat。但是,以固定的时间间隔运行任务以发送通知似乎有些奇怪。另外,我提出了一个(潜在的)问题,该问题(可能)会导致一个不太优雅的解决方案: 每五分钟检查一次过去五分钟内发生的事件吗?似乎有些动摇,也许某些事件错过了(或者其他事件收到了两次发送的通知?)。潜在的工作方式:向模型添加一个布尔字段,该字段设置为True在发送通知后立即设置。 同样,选项2也有其问题: 手动更改事件开始/结束日期时间时的情况。使用时celery,taskID一旦日期更改并发出新任务,就必须存储(easy,ofc)并撤消任务。但是我已经读到,当处理将来运行的任务时,芹菜存在(特定于设计的)问题:github上的Open Issue。我意识到这是如何发生的,为什么它只是解决所有问题而已。 现在,我遇到了一些可以潜在地解决我的问题的库: celery_longterm_scheduler(但是这是否意味着我不能像以前那样使用celery,因为Scheduler类不同?这也与django-celery-beat... 的可能用法联系在一起。使用两个框架中的任何一个,是否仍然可以将作业排队(只是运行时间更长一点,但还没有几个月?) django-apscheduler,使用apscheduler。但是,我找不到任何有关如何处理在不久的将来运行的任务的信息。 我处理此问题的方式是否存在基本原则上的缺陷?我很高兴收到您的任何意见。 注意:我知道这很可能是基于观点的,但是,不管有人认为什么是丑陋或优雅的,我可能都错过了一个非常基本的东西。

5
Python请求:POST请求删除Authorization标头
我正在尝试使用Python请求库发出API POST请求。我正在通过Authorization标头,但是在尝试调试时,可以看到标头已被删除。我不知道发生了什么事。 这是我的代码: access_token = get_access_token() bearer_token = base64.b64encode(bytes("'Bearer {}'".format(access_token)), 'utf-8') headers = {'Content-Type': 'application/json', 'Authorization': bearer_token} data = '{"FirstName" : "Jane", "LastName" : "Smith"}' response = requests.post('https://myserver.com/endpoint', headers=headers, data=data) 如您在上方所见,我Authorization在请求参数中手动设置了标头,但它缺少实际请求的标头: {'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.4.3 CPython/2.7.9 Linux/4.1.19-v7+'}。 另外一条信息是,如果我将POST请求更改为GET请求,则Authorization标头会正常通过! 为什么该库会丢弃POST请求的标头,如何使它正常工作? 使用请求库v2.4.3和Python 2.7.9

2
如何输出网络的第二层?
我的模型训练有数字图像(MNIST dataset)。我正在尝试打印网络第二层的输出-128个数字的数组。 在阅读了很多示例之后-例如this,this,this。 我没有在自己的网络上执行此操作。我自己的算法都无法使用这两种解决方案。 链接到Colab:https ://colab.research.google.com/drive/1MLbpWJmq8JZB4_zKongaHP2o3M1FpvAv ? fbclid = IwAR20xRz2i6sFS-Nm6Xwfk5hztdXOuxY4tZaDRXxAx3b986Toa9 我收到了很多不同的错误消息。我试图处理它们中的每一个,但我自己无法解决。 我想念什么?如何输出第二层? 如果我的形状是(28,28)-的类型和值应该是什么input_shape? 试用失败和错误,例如: (1) for layer in model.layers: get_2nd_layer_output = K.function([model.layers[0].input],[model.layers[2].output]) layer_output = get_2nd_layer_output(layer)[0] print('\nlayer output: get_2nd_layer_output=, layer=', layer, '\nlayer output: get_2nd_layer_output=', get_2nd_layer_output) TypeError:输入应为列表或元组。 (2) input_shape=(28, 28) inp = model.input # input placeholder outputs = [layer.output for layer in …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.