我正在使用CKAN 2.2版,并试图自动创建数据集和上传资源。我似乎无法使用python 请求库创建数据集。我收到400错误代码。码:
import requests, json
dataset_dict = {
'name': 'testdataset',
'notes': 'A long description of my dataset',
}
d_url = 'https://mywebsite.ca/api/action/package_create'
auth = {'Authorization': 'myKeyHere'}
f = [('upload', file('PathToMyFile'))]
r = requests.post(d_url, data=dataset_dict, headers=auth)
Run Code Online (Sandbox Code Playgroud)
奇怪的是我是能够创造新的资源,并使用Python上传文件请求库。该代码基于此文档。码:
import requests, json
res_dict = {
'package_id':'testpackage',
'name': 'testresource',
'description': 'A long description of my resource!',
'format':'CSV'
}
res_url = 'https://mywebsite.ca/api/action/resource_create'
auth = {'Authorization': 'myKey'}
f = [('upload', file('pathToMyFile'))]
r = requests.post(res_url, data=res_dict, headers=auth, files=f)
Run Code Online (Sandbox Code Playgroud)
我还可以使用内置的python库使用CKAN文档中的方法创建数据集。文档:CKAN …
我们在我们的一些 ArcGIS Server web 服务上使用基于令牌的安全性,我试图更好地了解它们的工作方式。我们目前必须使用粘性会话,因为我们有负载平衡服务以实现冗余和性能。然而,我阅读的所有文档(例如下面的文章)都表明,使用令牌身份验证实际上应该消除对粘性会话的需求。在阅读完所有内容后,我仍然不确定为什么会这样。
如果用户登录并从我们的负载平衡服务器之一接收令牌,并且该令牌随每个后续请求一起传递,那么为什么不需要确保请求在同一台服务器上结束。另一台服务器如何能够验证令牌?根据我的阅读,我能想到的唯一方法是将令牌签名存储在所有负载平衡服务器都可用的中央存储库中。再说一次,这与仅存储令牌本身没有什么不同,这与存储会话信息相同。
http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543
我有一个查询从一个表中检索数据.但是查询使用如下的MINUS子句:
SELECT field1, field2
FROM tab
WHERE field3 = 'a'
AND field4 = 'b'
MINUS
SELECT field1, field2
FROM tab
WHERE field5 = 'c'
AND field6 = 'd'
Run Code Online (Sandbox Code Playgroud)
由于这是从同一个表中选择,我试图重写这个以摆脱该MINUS条款.我认为这样的事情应该有效:
SELECT DISTINCT field1, field2
FROM tab
WHERE field3 = 'a'
AND field4 = 'b'
AND NOT (field5 = 'c'
AND field6 = 'd')
Run Code Online (Sandbox Code Playgroud)
我的理由是,如果该MINUS子句排除了第二个查询中的记录,那么将该WHERE子句包装在一个AND NOT应该删除相同的记录.该MINUS条款也摆脱了重复,这就是我添加DISTINCT到选择中的原因.然而问题是,我的查询返回多比原来的记录.
我在这里错过了什么?
我的情况是,函数返回的结构可能不需要在该函数之外的任何地方使用。然而,由于它不是一个简单的值而是一个实际的对象,我想在我的函数中声明一个类,我可以实例化然后返回。
例如:
def CreateSomeFunkyDataStructure():
class FunkyClass:
def __init__(self):
self.var1 = 'Play that funky music white boy.'
def getFunky(self):
print 'Play that funky music right.'
x = FunkyClass()
return x
o = CreateSomeFunkyDataStructure()
print o.var1
o.getFunky()
Run Code Online (Sandbox Code Playgroud)
我的问题是这是一种好的做法还是不好的做法,因为这感觉很奇怪。同时在我看来,因为封装的目的是为了防止某人访问某个函数的实现,所以在这种情况下它可能是非常合适的。如果该类不是程序中其他任何地方都需要的东西,则程序的其余部分没有理由访问它。
我在使用下面的 PLSQL 块时遇到问题。当代码按如下方式执行时(没有循环),脚本成功。但是,当循环被取消注释时,我收到一个错误,即未找到 select 语句中的表。当我检查时,我发现该表确实根本没有创建。这几乎就像循环试图在立即执行之前运行一样。
是的,我知道由于无论如何都没有填充表,因此无论如何都不会出现打印语句,但是我不希望查询失败。
begin
execute immediate 'create table tbl_temp (oid_value number(20) ,rowid_field varchar2(20))';
/*for nullval in (select oid_value from tbl_temp)
loop
DBMS_OUTPUT.PUT_LINE('something');
end loop;*/
end;
Run Code Online (Sandbox Code Playgroud)