小编Vai*_*hek的帖子

ValueError:定义字典中不支持的格式字符'{'(0x7b)

我正在使用Google Python Appengine为Web开发编写一些代码.在我的代码中,我必须使用%和字典连接字符串这是我编写的代码.

def print_form(self, unameError='', passwdError='', verpasswdError='', emailError='', unameValue='', emailValue='' ):
    self.response.out.write( form3 % {  "unameError"    : unameError, 
                                        "passwdError"   : passwdError, 
                                        "verpasswdError": verpasswdError, 
                                        "emailError"    : emailError, 
                                        "unameValue"    : unameValue,  
                                        "emailValue"    : emailValue
                                     }  
                            )
Run Code Online (Sandbox Code Playgroud)

对于此代码,我从服务器收到此错误:

在print_form"emailValue"中的web-app-local-directory-path/main.py",第139行:emailValue ValueError:索引218处不支持的格式字符'{'(0x7b)

我似乎无法弄清楚这段代码中有什么问题.我已经定义了一个有效的字典,根据我的说法似乎没有问题.

有人请帮帮我.

关心Vaid,Abhishek

python

6
推荐指数
1
解决办法
3408
查看次数

赋予构造函数名称的意义何在

我已经使用C++和Java几年了.我似乎无法理解的一件事是,为什么我们需要为类的构造函数提供名称?例如,如果我必须FOO在C++/Java中定义一个类,我将被迫提供FOO构造函数名称.但是,由于构造函数从未被显式调用,编译器的意义在于强迫我为它提供一个名称.

抽象范式决定了,我们隐藏了程序员不必要的细节.这就是原因,构造函数没有返回类型,因为它已经很好地定义了构造函数必须返回的内容.本着同样的精神,为什么我们不能只给所有类的构造函数赋一个通用名称 - 例如任何有意义的东西,比如initialize()或者只是什么都没有,只是参数( [arg [,arg]] )

我希望,我能够表达自己.如果有人有任何确定的答案,请告诉我.

c++ java constructor abstraction

6
推荐指数
1
解决办法
253
查看次数

有twitter4j库的多个Twitter实例.

我需要能够Twitter使用相同的消费者密钥和秘密但不同的用户级别访问令牌来创建不同的实例.

我已经使用标准的Twitter OAuth登录协议,根据我的应用程序的消费者凭据获得了10个用户的访问令牌.现在,我想创建一个Twitter实例列表,每个实例都用一个单独的初始化Accesstoken.但是,我无法做到这一点.

我混淆的主要原因是,我不明白如何Twitter4j实例化Twitter实例.我不明白TwitterFactory.getSingleton()方法和TwitterFactory().getInstance()方法之间的区别.

我也不明白AccessTokens是否可以独立工作而不提供消费者密钥和秘密.或者在使用Accesstokens时我是否需要提供使用者密钥和密钥.

如果有人能够详细解释我的要求的设计,我们将非常感激.

twitter twitter4j access-token twitter-oauth

6
推荐指数
1
解决办法
2257
查看次数

MongoDB不对'_id'使用复合索引

我在MongoDB中有一个集合,其中包含以下文档。

/* 0 */
{
    "T" : [ 
        374135056604448742
    ],
    "_id" : {
        "#" : 7778532275691,
        "ts" : ISODate("2013-07-26T02:25:00Z")
    }
}

/* 1 */
{
    "T" : [ 
        1056188940167152853
    ],
    "_id" : {
        "#" : 34103385525388,
        "ts" : ISODate("2013-07-30T03:00:00Z")
    }
}

/* 2 */
{
    "T" : [ 
        1056188940167152853
    ],
    "_id" : {
        "#" : 34103385525388,
        "ts" : ISODate("2013-07-30T03:18:00Z")
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试使用以下查询来查询一些文档。

db.entries.find({
    '_id.ts': {'$gte': beginTS, '$lte': endTS}, 
    '_id.#' : 884327843395156951
    }).hint([('_id', 1)]).explain()
Run Code Online (Sandbox Code Playgroud)

根据我的理解,由于_id是复合字段,而Mongo始终在_id上保留索引,因此为了回答以上查询,Mongo应该在'_id'上使用索引。但是,上述查询的答案如下:

{u'allPlans': [{u'cursor': u'BtreeCursor _id_',
   u'indexBounds': {u'_id': …
Run Code Online (Sandbox Code Playgroud)

query-optimization mongodb pymongo

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

使用continue_on_error,Pymongo w = 1

我有一些推文.我想在此集合中插入推文列表.新列表也可能有一些重复的推文,我想确保重复的推文不会被写入,但所有剩余的推文都会.为此,我使用以下代码.

mongoPayload = <list of tweets>
committedTweetIDs = db.tweets.insert(mongoPayload, w=1, continue_on_error=True)
print "%d documents committed" % len(committedTweetIDs)
Run Code Online (Sandbox Code Playgroud)

上面的代码片段应该可以使用.但是,我得到的行为是第二​​行生成DuplicateKeyError.我不知道这是怎么回事,因为我提到了continue_on_error.

我最终想要的是Mongo提交所有非重复文档并返回给我(作为确认)所有写入期刊的文件的tweetID.

mongodb pymongo

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

如何快速插入到一个非常大的集合

我收集了超过 7000 万份文件。每当我批量添加新文档(比如 2K)时,插入操作真的很慢。我怀疑这是因为 mongo 引擎正在将所有新文档的 _id 与所有 7000 万个进行比较,以找出任何 _id 重复条目。由于基于 _id 的索引是磁盘驻留的,它会使代码变慢。

有没有办法避免这种情况。我只希望 mongo 获取新文档并按原样插入,而不进行此检查。甚至有可能吗?

mongodb

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

精度与精度的含义 双类型范围

首先,请允许我承认我是一名经验丰富的程序员,拥有超过 10 年的编程经验。然而,我在这里问的问题是自从大约十年前我第一次拿起一本关于 C 的书以来一直困扰着我的问题。

\n\n

下面是一本关于Python的书的摘录,解释了Python的浮动类型。

\n\n
\n

浮点数使用机器上浮点数的本机双精度(64 位)表示形式来表示。通常这是 IEEE 754,它提供大约 17 位精度和范围在 \xe2\x80\x93308 到 \n 308 的指数。这与 C 中的 double 类型相同。

\n
\n\n

我一直不明白这句话的含义

\n\n
\n

“...提供大约 17 位精度和 \n 指数,范围为 \xe2\x80\x93308 到 308 ...”

\n
\n\n

我的直觉在这里误入歧途,因为我可以理解精度的含义,但范围怎么可能与此不同。我的意思是,如果一个浮点数可以表示最多 17 位的值(即最多 1,000,000,000,000,000,00 - 1),那么指数怎么可能是 +308。如果指数为 10,这不会产生 308 位数字;如果指数为 2,这不会产生大约 100 位数字。

\n\n

我希望我能够表达我的困惑。

\n\n

问候\nVaid,阿布舍克

\n

double ieee-754 floating

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

如何安装python的coverage模块并在Windows中从命令行使用它

我想学习如何使用python的coverage.py模块来检查我的代码的覆盖模式.我尝试从各种来源阅读该工具,最后使用'pip'实用程序将其安装在我的Windows 7机器上.安装后,coverage模块安装在C:\ Python27\Lib\site-packages中.

现在,我正在阅读有关如何在此页面中使用它的说明:作者的安装说明.我按照本页面给出的安装说明进行操作.但是,在我安装之后,我不确定如何在命令行中使用该工具?根据作者在pip安装工具后,应该能够调用该命令

coverage --version 
Run Code Online (Sandbox Code Playgroud)

并希望看到一些输出.但是,当我运行此命令时,我发现命令未找到错误.根据我的说法,这是预期的行为,因为coverage只是另一个python模块(即具有.py扩展名)而不是独立的可执行文件.所以,我不知道如何以独立的方式运行它.

有人请提供安装工具的确切细节.我只需要安装帮助.我将从nedbatchelder.com的"Coverage命令行用法"一文中了解CMD的用法.

python code-coverage coverage.py python-coverage

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

PyMongo find_one 不返回现有条目

我在使用 Pymongo 的 find_one 函数时遇到了一个奇怪的问题。我的本地计算机上托管着一个名为“cluster_db”的数据库。它有一个称为“集群”的集合。当我在 mongo shell 中运行查询时,我得到以下输出。

> db
cluster_db
> db.clusters.findOne({_id:-8488068664808428000})
{
    "_id" : NumberLong("-8488068664808427924"),
    "members" : [
        {
            "participationCoeff" : 1,
            "tweetID" : NumberLong("-8488068664808427924")
        }
    ]
}
> 
Run Code Online (Sandbox Code Playgroud)

现在,在代码初始化阶段,我在模块“dbutil”中定义了一个常量,如下所示:

DB_CONNECTION           = MongoClient('localhost', 27017)
CLUSTER_DB_HANDLE       = DB_CONNECTION['cluster_db']
Run Code Online (Sandbox Code Playgroud)

之后,在一个函数中,我进行以下调用。

dbutil.CLUSTER_DB_HANDLE.clusters.find_one({'_id':clusterID})
Run Code Online (Sandbox Code Playgroud)

但是,上述调用始终返回“None”。如果我转到 MongoShell 并使用相同的 clusterID 运行完全相同的查询,我会看到结果。

我知道这是一个奇怪的错误,但不知何故我无法弄清楚为什么会发生这种情况。在其他地方,我能够使用 dbutil.CLUSTER_DB_HANDLE.clusters 成功调用 cluster_db 中的“集群”集合

python mongodb pymongo

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

Django本身是否支持迁移

我听说所有新的Web框架如ROR,Django等都遵循敏捷和TDD的一般原则.遵循敏捷和TDD的一部分是在从一次迭代到另一次迭代时构建自己的设计.这意味着模型及其架构将随着应用程序的不同版本而发展.我知道ROR原生支持模式迁移,但是我不确定django.我主要担心的是我如何能够预先决定所有与架构相关的问题.是不是回到了瀑布式的设计理念.

我也知道有一些外部软件包如"南方"用于架构迁移.但这个问题实际上是关于为什么django不支持ROR本身的迁移

django schema-migration

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