我一直在努力使用亚马逊S3的REST API将我的Android设备上的文件上传到我拥有的存储桶中.我有KEY和SECRET_KEY,但我不确定如何正确生成他们在请求中寻找的signatureValue.我正在为他们的服务器使用HttpPut,但我不确定如何正确生成signatureValue.到目前为止,这就是我所拥有的:
HttpPut put = new HttpPut(URL);
String fmt = "EEE, dd MMM yyyy HH:mm:ss ";
SimpleDateFormat format = new SimpleDateFormat(fmt, Locale.US);
format.setTimeZone(TimeZone.getTimeZone("GMT"));
String method = "PUT";
String contentType = "application/octet-stream";
String date = format.format(new Date()) + "GMT";
String bucket = "/test-bucket52809/";
StringBuffer buf = new StringBuffer();
buf.append(method).append("\n\n");
buf.append(contentType).append("\n");
buf.append(date).append("\n");
buf.append(bucket);
String signature = percentEncodeRfc3986(hmac(buf.toString()));
Run Code Online (Sandbox Code Playgroud)
然后是我用来生成签名值的方法:
private void setupMac() throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException
{
byte[] secretyKeyBytes = KEY_SECRET.getBytes("UTF-8");
signingKey = new SecretKeySpec(secretyKeyBytes, "HmacSHA256");
mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
}
private String …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Elasticsearch Python客户端上运行多搜索请求.我可以正确运行单一搜索,但无法弄清楚如何格式化msearch的请求.根据文档,请求的正文需要格式化为:
请求定义(元数据搜索请求定义对),作为换行符分隔的字符串,或序列化的序列序列(每行一个).
创建此请求正文的最佳方法是什么?我一直在寻找例子但似乎找不到任何例子.
我觉得这是一个愚蠢的问题.我找到了一个我需要使用的python库.特别是csvkit.我需要在我创建的现有应用程序中使用它.但是,我能够看到的所有示例用法都是从命令行传递参数,如下所示:
in2csv ne_1033_data.xlsx > data.csv
Run Code Online (Sandbox Code Playgroud)
我可以导入它并在我的应用程序中使用它吗?有点像:
from csvkit import in2csv
in2csv(ne_1033_data.xlsx, data.csv)
Run Code Online (Sandbox Code Playgroud)
谢谢你的协助.我确定我误解了一些事情......
我有一个python/flask应用程序.在其中我有一个页面,它对数据库进行了大量查询,以便在页面上显示数据.但是,如果我在@ app.route()所在的view.py中包含此逻辑,则加载页面需要的时间太长.然后我用d3显示这些数据.
我目前的设置是我有一个单独的路径,从视图中计算数据(假设"/ data"是路径).当您转到该路径时,它以json格式返回数据并加载
d3.json("/data", callback)
Run Code Online (Sandbox Code Playgroud)
这很好用.我的问题是我需要完成很多不同的查询,并且为每个数据集设置不同的路径会使我的应用程序混乱并且似乎没有遵循DRY原则.有一个更好的方法吗?我也很难将变量传递给从python运行d3的javascript.
我正在使用Elasticsearch的多搜索来通过python库运行查询列表.它似乎工作......主要是.问题是如果我发送200个查询,它返回100个结果(没有错误).我已尝试运行甚至20个查询,仍然获得10个结果.由于某种原因,似乎总是只返回一半的查询.这也意味着我不知道结果与哪个查询相关.
查询都可以单独工作,但需要的时间太长.在文档中没有提到响应可能不包含相同数量的查询,所以我不知道该去哪里.我已经进入代码,因为python库将让我验证所有查询都被发送,它似乎按预期工作.
感谢您的帮助或推动正确的方向!
编辑:这是我使用的查询的示例.
{
"filter":{
"and":[
{
"not":{
"term":{
"uuid":"60507f9e-01c1-11e5-a369-34363bd16ec4"
}
}
},
{
"term":{
"brand_id":22212
}
}
]
},
"query":{
"bool":{
"minimum_should_match":1,
"should":[
{
"match":{
"name":{
"query":"spork",
"boost":3
}
}
},
{
"match":{
"categories":{
"slop":10,
"type":"phrase",
"query":"household plates, bowls, cups & flatware"
}
}
}
],
"must_not":[
],
"must":[
{
"match":{
"name_analyzed":{
"boost":4,
"query":"spork",
"type":"phrase",
"slop":15
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我根据python elasticsearch文档创建了一个包含许多查询的列表,我希望按照这些查询运行并执行它们:
elasticsearch.msearch(list_of_search_queries)
Run Code Online (Sandbox Code Playgroud) 我在 Flask 应用程序中使用Flask Uploads作为上传表单。但是,每当我尝试保存文件时,都会收到此错误:
File "/Users/Documents/virtual_environment/bin/../lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/app'
Run Code Online (Sandbox Code Playgroud)
上传似乎没有保存文件所需的权限?这是我用于烧瓶上传的配置:
UPLOADS_DEFAULT_URL = os.environ.get("UPLOADS_URL", "http://localhost:5000/")
UPLOADS_DEFAULT_DEST = "/app/uploads/"
UPLOAD_EXTENSIONS = set(["csv", "xls", "xsls"])
Run Code Online (Sandbox Code Playgroud)
另外,这是我保存实际文件的方法:
@app.route('/upload', methods = ['GET', 'POST'])
@app.route('/upload/', methods = ['GET', 'POST'])
@roles_accepted('admin', 'team')
def r_upload():
form = FileUploadForm()
if form.validate_on_submit():
filename = uploadSet.save(form.uploadfile.data)
url = uploadSet.url(filename)
flash("%s uploaded <a href=\'%s\'>HERE</a>!" % (filename, url))
return render_template('/uploads.html',
dashboard_title = "%s Uploads" % g.name,
form = form)
Run Code Online (Sandbox Code Playgroud)
该错误是由保存行引起的。对于如何解决这个问题,有任何的建议吗?谢谢。
我正在使用Python NLTK Wordnet API.我正在尝试找到代表一组单词的最佳synset.
如果我需要为"学校和办公用品"找到最好的同义词,我不知道如何解决这个问题.到目前为止,我已经尝试找到单个单词的同义词,然后计算最好的最低常见上限,如下所示:
def find_best_synset(category_name):
text = word_tokenize(category_name)
tags = pos_tag(text)
node_synsets = []
for word, tag in tags:
pos = get_wordnet_pos(tag)
if not pos:
continue
node_synsets.append(wordnet.synsets(word, pos=pos))
max_score = 0
max_synset = None
max_combination = None
for combination in itertools.product(*node_synsets):
for test in itertools.combinations(combination, 2):
score = wordnet.path_similarity(test[0], test[1])
if score > max_score:
max_score = score
max_combination = test
max_synset = test[0].lowest_common_hypernyms(test[1])
return max_synset
Run Code Online (Sandbox Code Playgroud)
然而,这不是很好,而且成本很高.有没有办法找出哪个synset最能代表多个单词?
谢谢你的帮助!
我已经打了一会儿反对这个问题,似乎无法弄明白.我正在尝试将Django应用程序部署到前端使用的heroku.我很陌生,所以我可能会遗漏一些基本的东西.
我现在有一个heroku应用程序,它有两个buildpacks(heroku/nodejs和heroku/python).要运行该应用程序在本地使用我python manage.py runserver一起node server.js在端口3000我知道Heroku上只允许一个端口接收HTTP请求,所以我认为这个问题是存在的.
我的主要问题是:在Heroku应用程序上使用Django和React我需要有两个独立的应用程序(一个用于django,一个用于反应)或者我可以只维护一个应用程序吗?
我一直在搜索这个存储库,似乎只使用了一个应用程序.但是我看不到节点服务器是如何工作的.
感谢您的任何澄清或推动正确的方向!如果我需要澄清我的问题,请告诉我.
编辑:我尝试过的其他几件事:
我有几个模型设置,如下所示:
Group(models.Model):
name = models.TextField(max_length=255)
Thing(models.Model):
location = models.TextField(max_length=255)
group = models.ForeignKey(Group)
Run Code Online (Sandbox Code Playgroud)
这只是说明关系的一个例子,所以请原谅任何语法错误。
我的问题是,如何找到具有一组特定位置的组?我应该能够使用以下方法访问与组关联的事物:
Group.thing_set
Run Code Online (Sandbox Code Playgroud)
对?那么有什么方法可以根据thing_set中的项目进行过滤吗?我在想一些类似的事情。
Group.objects.filter(thing_set.location in ["Location A", "Location B"]).all()
Run Code Online (Sandbox Code Playgroud)
希望这能将包含来自位置 A 和位置 B 的内容的每个组都返回给我。任何建议或朝正确方向的推动都会非常有帮助!
谢谢。
我在这里搞清楚要使用哪个python数据结构......
我查询数据库并获取名称列表,然后我再次检查并获得与每个名称相关联的计数.我将这些信息存储在一个地方最简单的方法是什么?我想要一个名称及其相关计数的列表.谢谢!