小编sha*_*fri的帖子

pymongo auth在python脚本中失败了

我已经安装了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)

python mongodb pymongo

18
推荐指数
3
解决办法
2万
查看次数

postgresql 分区上的唯一索引

我有一个名为 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)

postgresql unique unique-constraint

7
推荐指数
1
解决办法
9905
查看次数

将.csv文件中的混合数据写入带有xlwt的.xls - 如何格式化数字?

我正在尝试从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)

python csv xlwt

4
推荐指数
1
解决办法
3686
查看次数

在python中引用了分隔符游标copy_from

有没有办法提供像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)

python sql psycopg2

4
推荐指数
1
解决办法
2868
查看次数

从 python 列表中查找最长的匹配字符串

假设我们有一个包含 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)

任何帮助将不胜感激。

python regex

3
推荐指数
1
解决办法
2778
查看次数

python中的间隔

我已经对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)

python datetime list intervals

1
推荐指数
2
解决办法
1万
查看次数

重新找到两个字符串的最长匹配后缀

我有两个字符串:

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)

python regex string-matching longest-substring

0
推荐指数
1
解决办法
623
查看次数

HTML表单没有以PHP格式发送POST

我正在尝试创建简单的表单和帖子.我创建了简单的表单.但提交后没有实际收到.我创建了单个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)

html php forms post twitter-bootstrap

0
推荐指数
1
解决办法
270
查看次数