我已经安装了mongodb并启用了auth.和它的工作发现.我可以使用robomongo应用程序从远程笔记本连接它:
Host: SERVER_IP
PORT: 27017
DATEBASE: prod-db
USERNAME: user_name
PASS: user_password
Auth Mechanism: MONGODB-CR
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下方式从本地连接服务器shell:
$ mongo prod-db -u user_name -p user_password
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我们尝试使用pymongo api时.身份验证失败.下面是python代码:
from pymongo import MongoClient
client = MongoClient()
client.prod_db.authenticate('user_name', 'user_password', mechanism='MONGODB-CR')
db = client.prod_db
result = db.users.find()
for document in result:
print(document)
Run Code Online (Sandbox Code Playgroud)
使用的工具:
python 2.7
pymongo versiob 3.3.1
MongoDB shell version: 2.6.10
$ mongod --version
db version v2.6.10
2016-10-31T16:34:59.868+0000 git version: nogitversion
2016-10-31T16:34:59.868+0000 OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
Run Code Online (Sandbox Code Playgroud)
错误跟踪:
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud) 我有一个名为 cdrs 的表:
CREATE TABLE cdrs (
i_cdr bigint NOT NULL,
i_cdrs_connection bigint NOT NULL,
i_call bigint NOT NULL,
customer_name character varying(156) NOT NULL,
client_name_id character varying(256) NOT NULL,
connection_name character varying(156) NOT NULL,
vendor_name_id character varying(256) NOT NULL,
setup_time timestamp with time zone NOT NULL,
c_result_id bigint NOT NULL,
v_result_id bigint NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
现在,在插入父表时使用触发器继承创建分区并执行更新。该函数尝试插入,如果所需的分区不存在,则使用索引创建它。我们在 i_cdrs_connection 上为每个分区创建了唯一索引,也在父分区上创建了唯一索引。
CREATE UNIQUE INDEX i_cdrs_connection ON cdrs(i_cdrs_connection)
CREATE OR REPLACE FUNCTION cdrs_insert_trigger() RETURNS TRIGGER AS $$
BEGIN
EXECUTE 'INSERT INTO cdrs_'|| to_char(NEW.setup_time, 'YYYY_MM_DD') …Run Code Online (Sandbox Code Playgroud) 我正在尝试从csv中读取一堆混合数据(字符串和数字)并将所有内容写入excel文件.不幸的是,一切都写成文本,因为在csv文本中是唯一的格式.如何以正确的格式编写数值数据?这是我到目前为止的代码......
import xlwt, csv
wb = xlwt.Workbook()
ws = wb.add_sheet('testSheet')
sourceCSV = csv.reader(open('sourceCSVfile.csv', 'rb'), delimiter=",")
for rowi, row in enumerate(sourceCSV):
for coli, value in enumerate(row):
ws.write(rowi, coli, value)
wb.save('TEST.xls')
Run Code Online (Sandbox Code Playgroud) 有没有办法提供像Quoted分隔符
import psycopg2
f_cm = open('cm.sql', 'r')
constr = "dbname='mydb' user= 'pgsql' host='127.0.0.1'"
db = psycopg2.connect(constr)
st = db.cursor()
#st.copy_from(f_cm, 'mytable', sep='","', columns = ('col1','col2', 'col3'))
#instead of
st.copy_from(f_cm, 'mytable', sep=',', columns = ('col1','col2', 'col3'))
Run Code Online (Sandbox Code Playgroud)
日期格式为:
"54654","4454","45465"
"54546","4545","885dds45"
"54536","4546","885dd45"
Run Code Online (Sandbox Code Playgroud)
我在psycopg2.0.9中搜索并发现psycopg New的好消息
转到标题psycopg 2.0.9中的新功能,其中指出:copy_from()和copy_to()现在可以使用带引号的分隔符.
工具:
psycopg2 = 2.4.5
python = 2.7.3
Run Code Online (Sandbox Code Playgroud) 假设我们有一个包含 35000 个值的 python 列表,例如:
a = ['235', '2589', '25896']
Run Code Online (Sandbox Code Playgroud)
和要匹配的字符串:
str = '258963548'
str2 = '258954213'
str3 = '258659652'
Run Code Online (Sandbox Code Playgroud)
现在我想将这些字符串匹配到列表以找到最长的匹配。第一个字符串的结果将是 25896,而第二个匹配将返回 2589,最后一个字符串将无法匹配。
我已经使用正则表达式来解决这个问题,但是需要很长时间,因为我有大约 50 组列表和大约 200 个字符串来匹配每个列表。
这是我的代码:
def Matchit(str,b = []):
pattern = re.compile("(?P<mt>\S*)\S*\s+(?P=mt)")
ln = 0
res = -1
for a in b:
match = pattern.match(str + ' ' + a).group('mt')
if (len(match)>ln):
ln = len(match)
if(ln>2):
res = b[a]
return res
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
我已经对datetime.time的列表进行了排序,并希望创建像.如果我有
a = [datetime.time(0,0), datetime.time(8,0), datetime.time(13,0), datetime.time(17,0)]
Run Code Online (Sandbox Code Playgroud)
那么结果应该是这样的:
c = [[datetime.time(0,0),datetime.time(8,0)], [datetime.time(8,0),datetime.time(13,0)],
[datetime.time(13,0),datetime.time(17,0)], [datetime.time(17,0),datetime.time(0,0)]]
Run Code Online (Sandbox Code Playgroud)
这可以通过简单的循环实现,但如果有更好的解决方案存在?
使用循环:
>>> a=[datetime.time(0, 0), datetime.time(3, 0), datetime.time(8, 0), datetime.time(11, 0)]
>>>
>>> r = []
>>>
>>> for i in range(0,len(a)):
... if i+1 < len(a):
... r.append([a[i],a[i+1]])
... else:
... r.append([a[i],a[0]])
...
>>> r
[[datetime.time(0, 0), datetime.time(3, 0)], [datetime.time(3, 0), datetime.time(8, 0)], [datetime.time(8, 0), datetime.time(11, 0)], [datetime.time(11, 0), datetime.time(0, 0)]]
>>>
Run Code Online (Sandbox Code Playgroud)
如果我想要结果,可能会有什么变化
[[datetime.time(0, 0), datetime.time(2, 59, 59)], [datetime.time(3, 0), datetime.time(7, 59, 59)], [datetime.time(8, 0), …Run Code Online (Sandbox Code Playgroud) 我有两个字符串:
a = '54515923333558964'
b = '48596478923333558964'
Run Code Online (Sandbox Code Playgroud)
现在最长的后缀匹配是
c = '923333558964'
Run Code Online (Sandbox Code Playgroud)
什么是使用re的解决方案?
这是我找到的前缀匹配解决方案:
import re
pattern = re.compile("(?P<mt>\S*)\S*\s+(?P=mt)")
a = '923333221486456'
b = '923333221486234567'
c = pattern.match(a + ' ' + b).group('mt')
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建简单的表单和帖子.我创建了简单的表单.但提交后没有实际收到.我创建了单个form.php文件.
form.php的:
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap 101 Template</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="row">
<?php
echo 'Hello World';
foreach ($_POST as $key => $value) {
echo "<tr>";
echo "<td>";
echo $key;
echo "</td>";
echo "<td>";
echo $value;
echo "</td>";
echo "</tr>";
}
?>
<div class="col-md-6 col-md-offset-3">
<form class="form-horizontal" action="form.php" method="post">
<div class="form-group">
<label for="input1" class="col-sm-2 control-label">Tag#1</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="input1a" placeholder="Old Value" value="dummy">
</div>
<div class="col-sm-5">
<input type="text" …Run Code Online (Sandbox Code Playgroud)