小编Dee*_*ace的帖子

MongoDB - "'fieldName"中的"美元($)前缀字段\'$$ hashKey \".$$ hashKey \'对存储无效.'"

在尝试更新文档时,我收到了该字段的上述错误timesToDisplay.

MongoDB版本2.6.7.

整个型号:

msg = {
          'name': '',
          'template': '',
          'displayDurInMilliSec': 0,
          'timesToDisplay': [],
          'images': [],
          'texts': [],
          'screen': []
       }
Run Code Online (Sandbox Code Playgroud)

我想我将与其他3个数组字段获得相同的错误.

我尝试过使用$set但是得到同样的错误.

代码:

function updateMessage(msg) {
    var conditions = {_id: msg._id}
      , update = { 'name': msg.name,
                   'template': msg.template,
                   'displayDurInMilliSec': msg.displayDurInMilliSec,
                   'timesToDisplay': msg.timesToDisplay,
                   'images': msg.images,
                   'texts': msg.texts,
                   'screen': msg.screen
    }

    messageModel.update(conditions, update, callback);

    function callback(err, numAffected) {
        if (!err) console.log(numAffected)
        else console.log(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:msg参数本身的文件:

{ _id: '557d58abd54955480db6694f',
  name: 'msg99',
  timesToDisplay: [ …
Run Code Online (Sandbox Code Playgroud)

mongodb

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

在sqlalchemy查询中使用for循环

所以我想在查询中使用for循环,如果记录的字段等于对象的属性(在对象列表中),则拉取结果我该怎么做?这是我的代码:

you = session.query(Users).filter_by(id=login_session['userid']).first()

friends = session.query(Friends).filter_by(user_id=login_session['userid']).all()

dashboard = session.query(Markers).filter(Markers.owner == f.friend_id for f in friends).all()
Run Code Online (Sandbox Code Playgroud)

但后来我得到了这个:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pearadox6/travellr/app.py", line 423, in feed
    dashboard = session.query(Markers).filter(Markers.owner == f.friend_id for f in friends).all()
  File "<string>", line 1, in <lambda>
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy

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

Python: "AttributeError: 'Namespace' object has no attribute" argparse

My code looks like this:

parser.add_argument('-i', '--input', help='Input path/to/file.csv', required=True)
parser.add_argument('-oh', '--output-html', help='Output path/to/confusion_matrix.html', required=True)
parser.add_argument('-oc', '--output-csv', help='Output path/to/confusion_matrix.csv', required=True)
args = parser.parse_args()

....

y_true = pd.Series(true_data, name="Actual")
y_pred = pd.Series(pred_data, name="Predicted")
df_confusion = pd.crosstab(y_true, y_pred)
df_confusion.to_html(args.output-html)
df_confusion.to_csv(args.output-csv)
Run Code Online (Sandbox Code Playgroud)

When i try to run it, it gives me this error:

df_confusion.to_html(args.output-html)
AttributeError: 'Namespace' object has no attribute 'output'
Run Code Online (Sandbox Code Playgroud)

However, if i change from

df_confusion.to_html(args.output-html)
Run Code Online (Sandbox Code Playgroud)

To

df_confusion.to_html(args.output)
Run Code Online (Sandbox Code Playgroud)

It works as it should. Can anyone explain why it doesn't work, and how can …

python

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

内置函数中的可变默认参数

我们都知道'可怕的可变默认参数'

我惊讶地发现至少有一个使用可变默认参数的内置函数deepcopy(和相关的__deepcopy__).

def deepcopy(x, memo=None, _nil=[]):

资源

这只是模块作者的一个忽视,还是有一些特殊deepcopy的行为证明了这一点?

python

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

熊猫用第一个可用值的一部分填充nan值

我正在尝试使用以下所有nan值中的第一个先前的可用值来替换DataFrame中的nan值。

在下面的示例中:

import pandas as pd
df = [100, None, None, 40, None, 120]
df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

我想得到:

[33.33, 33.33, 33.33, 20, 20, 120]
Run Code Online (Sandbox Code Playgroud)

如果我可以找到一种方法来对列中每个值之后的nan值进行计数,那么我可以运行一些计算来实现拆分。

python dataframe pandas

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

是否已缓存日期时间对象?

我摆弄周围怎样才能获得False

print(datetime.now() == datetime.now())
Run Code Online (Sandbox Code Playgroud)

我想在每台“现代” /足够快的计算机上都是这样True

但是,我注意到了一些奇怪的地方:

print(id(datetime.now()) == id(datetime.now()))
Run Code Online (Sandbox Code Playgroud)

将不断输出True,这使我相信datetime对象(可能只是由创建的对象.now())会自动缓存在某个地方。

然后,我又进行了一些修改,想出了这个宝石:

def get_now():
    now = datetime.now()
    print(id(now))
    return now

print(get_now() == get_now())
exit()
Run Code Online (Sandbox Code Playgroud)

现在,我们获得了不同的ID,并且输出是恒定的False,好像get_now两次调用的开销足以使缓存机制了解更改的时间并需要创建一个新的对象。

我四处查看datetime.py,找不到任何能解释这种行为的东西,所以我想(如果它存在的话)是在C级实现的。

官方datetime文档上根本没有提到“缓存”(或它的任何共轭词)。

python datetime

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

循环中的Python异常处理

当我的程序找不到要查找的元素时,发生异常,我想在CSV中记录事件,显示一条消息,指出发生错误并继续。我已成功将事件记录到CSV中并显示消息,然后程序跳出循环并停止。我如何指示python继续。请检查我的代码。

sites = ['TCF00670','TCF00671','TCF00672','TCF00674','TCF00675','TCF00676','TCF00677']`

with open('list4.csv','wb') as f:
    writer = csv.writer(f)
    try:
        for s in sites:
            adrs = "http://turnpikeshoes.com/shop/" + str(s)
            driver = webdriver.PhantomJS()
            driver.get(adrs)
            time.sleep(5)
            LongDsc = driver.find_element_by_class_name("productLongDescription").text
            print "Working.." + str(s)
            writer.writerows([[LongDsc]])
    except:
        writer.writerows(['Error'])
        print ("Error Logged..")
        pass

    driver.quit()
print "Complete."
Run Code Online (Sandbox Code Playgroud)

python csv error-handling exception-handling

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

在条件中询问键是否存在以及在python中是否为真

我想过滤条件是否存在键,如果它是真的。有没有办法使这个过程更短,更有效?

d = {'x': True}

if 'x' in d and d['x']:
   print('good')
Run Code Online (Sandbox Code Playgroud)

python conditional-statements

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

调用 CompleteMultipartUpload 操作时发生错误 (EntityTooSmall):您建议的上传小于允许的最小大小

我有以下使用 MultipartUpload 上传 s3 的代码。

import logging
import boto3


class UploadS3:
    def __init__(self, bucket, prefix):
        self.s3 = boto3.resource('s3')
        self.bucket = bucket
        self.prefix = prefix

    def start(self, key):
        '''Start to upload a new file'''
        self.part_no = 1
        self.parts = []
        key_path = f'{self.prefix}/{key}'
        self.s3obj = self.s3.Object(self.bucket, key_path)
        self.mpu = self.s3obj.initiate_multipart_upload()
        self.buffer = bytearray()

    def upload(self, chunk):
        '''Upload a chunk'''
        if len(self.buffer) >= 5_000_000:
            self._upload_buffer()
        self.buffer += chunk

    def end(self, part_info={}):
        if len(self.buffer):
            self._upload_buffer()
        part_info['Parts'] = self.parts
        mpu_result = self.mpu.complete(MultipartUpload=part_info)
        logging.info(f'Upload result: …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services

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

在 Python 中保存到 .msg 文件,或者将邮件发送到文件系统

我正在使用该emails库发送邮件,但我还需要将其另存为.msg文件。我做了一些研究,还阅读了 msg 格式规范,偶然发现了这个 SO 答案,它显示了如何将邮件发送到文件系统C#,我想知道它是否也可以在 Python 中使用。

python email

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