当我的服务器(称为服务器A)向我的另一台服务器(所有服务器B)上的资源发出请求时,我偶尔会收到此错误:
ConnectionError: HTTPConnectionPool(host='some_ip', port=some_port): Max retries exceeded with url: /some_url/ (Caused by : [Errno 111] Connection refused)
异常中的消息是
message : None: Max retries exceeded with url: /some_url/ (Caused by redirect)
我包含的消息,因为它有额外的信息(caused by redirect).
正如我所说,我控制了此请求中涉及的两个服务器,因此我可以对其中一个和/或两个进行更改.此外,错误似乎是间歇性的,因为它不会每次都发生.
潜在相关信息 - 服务器A是运行apache的Python服务器,服务器B是NodeJS服务器.我不是一个Web服务器向导,除此之外,我不确定哪些信息是相关的.
有没有人确切知道这个错误意味着什么,或者如何调查修复?或者,是否有人知道哪个服务器可能是问题,提出请求的服务器或接收请求的服务器?
编辑:错误已经开始,我们也调用了外部Web资源.
尝试使用ElasticSearch创建一个搜索,该搜索使用距中心点的距离来影响相关性.
我不想简单地对距离点进行排序,我知道这是可能的,因为我希望基于搜索查询的相关性也会影响结果.
我想传入一个搜索字符串,说"咖啡"和一个纬度/经度,比如说"38,-77",并通过它们与"咖啡"的相关程度以及它们的接近程度来获得我的结果他们是"38,-77".
谢谢!
我需要一个Django表单字段,它将采用字符串列表.
我将遍历此列表并为每个字符串创建一个新的模型对象.
我不能做一个Model Multiple Choice Field,因为模型对象直到表单提交后才创建,我不能做一个Multiple Choice Field,因为我需要接受任意字符串,而不仅仅是一系列的定义的选项.
有人知道怎么做吗?
可能重复:
Python FAQ:"异常有多快?"
我记得读过Python在异常方面实现了"更好地寻求宽恕而非要求许可"的哲学.根据作者的说法,这意味着Python代码应该使用大量的try - except子句,而不是试图提前确定是否要做一些会导致异常的事情.
我刚刚在我的网络应用程序上写了一些try - except子句,其中大部分时间都会在代码运行时引发异常.因此,在这种情况下,提高和捕获异常将是常态.从效率的角度来看这是不是很糟糕?我还记得有人告诉我,捕获一个引发异常会产生很大的性能开销.
使用try - except条款是否会不必要地低效,在这些条款中,您希望几乎所有时间都会引发异常?
这是代码 - 它使用Django ORM来检查将用户与各种第三方社交提供者相关联的对象.
try:
fb_social_auth = UserSocialAuth.objects.get(user=self, provider='facebook')
user_dict['facebook_id'] = fb_social_auth.uid
except ObjectDoesNotExist:
user_dict['facebook_id'] = None
try:
fs_social_auth = UserSocialAuth.objects.get(user=self, provider='foursquare')
user_dict['foursquare_id'] = fs_social_auth.uid
except ObjectDoesNotExist:
user_dict['foursquare_id'] = None
try:
tw_social_auth = UserSocialAuth.objects.get(user=self, provider='twitter')
user_dict['twitter_id'] = tw_social_auth.uid
except ObjectDoesNotExist:
user_dict['twitter_id'] = None
Run Code Online (Sandbox Code Playgroud)
第一个将很少采取例外,因为现在我们正在实施"登录Facebook"作为新用户加入该网站的主要方法.但是,Twitter和Foursquare是可选的,如果他们想要导入朋友或粉丝,我希望大多数人不会.
我愿意接受更好的方法来编写这种逻辑.
collections.defaultdict当您将default_factory作为位置参数传递时,Python 2.7.5 似乎才有效 - 当您将其作为命名参数传递时,它会中断.
如果您运行以下代码,您将看到default_dict_success()运行正常,但default_dict_failure()抛出一个KeyError.
from collections import defaultdict
test_data = [
('clay', 'happy'),
('jason', 'happy'),
('aj', 'sad'),
('eric', 'happy'),
('sophie', 'sad')
]
def default_dict_success():
results = defaultdict(list)
for person, mood in test_data:
results[mood].append(person)
print results
def default_dict_failure():
results = defaultdict(default_factory=list)
for person, mood in test_data:
results[mood].append(person)
print results
default_dict_success()
default_dict_failure()
Run Code Online (Sandbox Code Playgroud)
输出是
# First function succeeds
defaultdict(<type 'list'>, {'sad': ['aj', 'sophie'], 'happy': ['clay', 'jason', 'eric']})
# Second function fails
Traceback (most recent …Run Code Online (Sandbox Code Playgroud) 我正在使用带有pyes的elasticsearch.我在最后一页的结果中得到重复.这是我的查询:
"query": {
"query": {
"filtered": {
"filter": {
"and": [
{
"match_all": {
}
}
]
},
"query": {
"bool": {
"minimum_number_should_match": 1,
"should": [
{
"text": {
"name.keyword_name": {
"operator": "and",
"query": "kentucky",
"type": "boolean",
"fuzziness": 0.8
}
}
},
{
"text": {
"address": {
"operator": "and",
"query": "kentucky",
"type": "boolean"
}
}
},
{
"text": {
"neighborhoods.name": {
"operator": "and",
"query": "kentucky",
"type": "boolean",
"fuzziness": 0.8
}
}
},
{
"text": {
"categories.name": {
"operator": "and",
"query": …Run Code Online (Sandbox Code Playgroud) 当墙贴通过Open Graph API制作时,需要一种方法让Facebook在墙柱中渲染图像.
当我将这个链接复制并粘贴到facebook.com上的Facebook用户界面并以这种方式发布时,墙贴最终看起来像这样:

但是,当我尝试使用Facebook Python库以编程方式访问我的墙时,使用下面的代码,图像不会呈现:
graph = GraphAPI(valid_access_token)
graph.put_wall_post(message='https://s3.amazonaws.com/dotellapptest/review_photos/enlarged/811..OJUzXI76Rw6J2Zj_vZyWNw.png')
Run Code Online (Sandbox Code Playgroud)
收益率:

如何使用Facebook API在我的留言板中嵌入图像?
我的ElasticSearch索引未正确索引和查询非字母数字字符.具体而言,点和短划线会引起问题.
如果我使用名称"OK Corral"索引文档,它应该匹配"OK Corral"的查询.同样,如果我将"Whiskey A Go-Go"编入索引,我希望它能与"Whiskey A GoGo"和"Whiskey A Go Go"相匹配.
现在,只有具有正确点和短划线的查询才会返回这些文档.
我希望该解决方案还能解决其他非字母数字字符的任何潜在问题,如逗号和撇号.
对于ElasticSearch令牌过滤器来说,这听起来像是一份工作,但我找不到能满足我需求的那些.另外,我想在ElasticSearch中执行此操作 - 我不想编写自定义字符串操作来在数据到达我的ES索引之前规范化数据.
谢谢你的帮助!
尝试控制在ElasticSearch中应用标记过滤器的顺序.
我从文档中知道首先应用了tokenizer,然后是令牌过滤器,但他们没有提到如何确定令牌过滤器的顺序.
这是我的分析设置脚本中的YAML片段:
KeywordNameIndexAnalyzer :
type : custom
tokenizer : whitespace
filter : [my_word_concatenator, keyword_ngram]
Run Code Online (Sandbox Code Playgroud)
我原本以为my_word_concatenator会在之前应用keyword_ngram,但似乎并非如此.任何人都知道如何(或是否)可以控制这些过滤器的顺序?
非常感谢!
无法使用Youtube Data API删除视频.我正在使用Python客户端库.
所有这些似乎都直接来自文档,所以我真的很困惑为什么它不起作用.这是我的功能:
def delete_youtube_video_by_id(video_id):
yt_service = gdata.youtube.service.YouTubeService()
yt_service.email = YOUTUBE_EMAIL
yt_service.password = YOUTUBE_SECRET_PASSWORD
yt_service.source = YOUTUBE_SOURCE
yt_service.developer_key = YOUTUBE_SECRET_DEVELOPER_KEY
yt_service.client_id = YOUTUBE_CLIENT_ID
yt_service.ProgrammaticLogin()
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
response = yt_service.DeleteVideoEntry(video_entry)
return response
Run Code Online (Sandbox Code Playgroud)
从文档中,如果视频成功删除,则应返回True.但是,它返回None:
>>> response = delete_youtube_video_by_id('my_youtube_video_id')
>>> type(response)
<type 'NoneType'>
>>>
Run Code Online (Sandbox Code Playgroud)
视频不会被删除.我知道凭据很好,因为它们与我用来上传视频的凭据相同,而且我知道ID很好,因为我直接从youtube中的渠道获取.
有任何想法吗?
python ×4
string ×2
arguments ×1
defaultdict ×1
distance ×1
django ×1
django-forms ×1
facebook ×1
forms ×1
geolocation ×1
http ×1
image ×1
list ×1
node.js ×1
parameters ×1
performance ×1
search ×1
tokenize ×1
try-catch ×1
video ×1
webserver ×1
youtube ×1
youtube-api ×1