小编sty*_*ane的帖子

'utf-8'编解码器不能解码Python3.4中读取文件的字节,但不能解码Python2.7中的字节

我试图在python2.7中读取一个文件,并且它完美无缺.我遇到的问题是当我在Python3.4中执行相同的程序然后出现错误:

'utf-8' codec can't decode byte 0xf2 in position 424: invalid continuation byte'
Run Code Online (Sandbox Code Playgroud)

此外,当我在Windows中运行该程序(使用python3.4)时,不会出现错误.该文件的第一行是: Codi;Codi_lloc_anonim;Nom

我的程序代码是:

def lectdict(filename,colkey,colvalue):
    f = open(filename,'r')
    D = dict()

    for line in f:
       if line == '\n': continue
       D[line.split(';')[colkey]] = D.get(line.split(';')[colkey],[]) + [line.split(';')[colvalue]]

f.close
return D

Traduccio = lectdict('Noms_departaments_centres.txt',1,2)
Run Code Online (Sandbox Code Playgroud)

python utf-8 python-3.x

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

MongoDB Aggregation展开多个数组

这就是我的文档的样子

{
  code: "A2df",
  clicks: 7,
  countries: [{"country":"IN", clicks:5},{"country":"US", clicks:2}],
  domains: [{"domain":"a.com", clicks:4},{"country":"b.com", clicks:3}]
},
{
  code: "B3ws",
  clicks: 11,
  countries: [{"country":"IN", clicks:6},{"country":"ND", clicks:5}],
  domains: [{"domain":"a.com", clicks:7},{"country":"c.com", clicks:4}]
},
{
  code: "A2df",
  clicks: 5,
  countries: [{"country":"IN", clicks:2},{"country":"ND", clicks:3}],
  domains: [{"domain":"a.com", clicks:1},{"country":"c.com", clicks:4}]
}...
Run Code Online (Sandbox Code Playgroud)

这就是我需要的:

{
  code: "A2df",
  clicks: 12,
  countries: [
    {
      "country": "IN",
      clicks: 7
    },
    {
      "country": "US",
      clicks: 2
    },
    {
      "country": "ND",
      clicks: 3
    }
  ],
  domains: [
    {
      "domain": "a.com",
      clicks: 5
    },
    {
      "country": …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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

错误:function()至少需要n个参数(给定n)

我正在尝试使用SymPy来获取残留物,在这种情况下是余切函数.我有一个integrate()函数:

import sympy as sy
import numpy as np

def integrate(f, z, gamma, t, lower, upper, exact=True):
    '''
    Integrate f(z) along the contour gamma(t): [lower, upper] --> C

    INPUTS:
    f - A SymPy expression. Should represent a function from C to C.
    z - A SymPy symbol. Should be the variable of f.
    gamma - A SymPy expression. Should represent a function from [lower, upper] to C.
    t - A SymPy symbol. Should be the variable of gamma.
    lower - …
Run Code Online (Sandbox Code Playgroud)

python arguments sympy

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

如何从上限集合中删除文档?

当我尝试在MongoDB中删除集合中的文档时.它没有删除,因为集合有上限.我的问题是为什么?在这种情况下是否有解决方案或其他功能可以删除文档?

mongodb mongodb-query

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

检查MongoDB中的值是否匹配

我需要检查mongodb是否nicknamepasswordtrue我尝试使用$and与操作$regex,但我不能得到它的工作.有人可以帮助我,现在有这个;

checkNickname: function(nickname, password){
    var reNick = new RegExp(nickname, "i"),
        rePass = new RegExp(password, "i");
    getProfile.find( { $and :  [{
        nickname: { $ne: { $regex: reNick } } },
        { password: { $ne: { $regex: rePass} } } 
    ]}, function(data){
        console.log(data)
    });
},
Run Code Online (Sandbox Code Playgroud)

regex mongodb mongodb-query

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

如何使用相应文档的数组获取每个组的字段的最大值?

我有一个像

{
    "_id" : ObjectId("5738cb363bb56eb8f76c2ba8"),
    "records" : [
        {
            "Name" : "Joe",
            "Salary" : 70000,
            "Department" : "IT"
        }
    ]
},
{
    "_id" : ObjectId("5738cb363bb56eb8f76c2ba9"),
    "records" : [
        {
            "Name" : "Henry",
            "Salary" : 80000,
            "Department" : "Sales"
        },
        {
            "Name" : "Jake",
            "Salary" : 40000,
            "Department" : "Sales"
        }
    ]
},
{
    "_id" : ObjectId("5738cb363bb56eb8f76c2baa"),
    "records" : [
        {
            "Name" : "Sam",
            "Salary" : 90000,
            "Department" : "IT"
        },
        {
            "Name" : "Tom",
            "Salary" : 50000,
            "Department" : "Sales" …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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

如何使用Pymongo在MongoDB中选择单个字段?

我正试图在MongoDB中找到一条记录,并_id从结果中过滤.

这是我的代码:

#app.py
@app.route('/login', methods = ['GET', 'POST'])
def login():
    if request.method == "POST":
        password = request.form.get('password')
        email = request.form.get('email')
        db = get_db()
        data = db.author.find_one({'email' : email, 'password' : password})
        print(data)
        return 'data'
    else:
        return render_template('login.html')
Run Code Online (Sandbox Code Playgroud)

输出:

{'password': '123123', 'name': '<my_name>', 'email': '<my_email>', '_id': ObjectId('<an_object_id_string>')}
Run Code Online (Sandbox Code Playgroud)

如何_id从输出中过滤字段?

python mongodb pymongo

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

MongoDB从对象数组中的数组中删除项

我有一个看起来像这样的文档:

{
  "_id" : ObjectId("56fea43a571332cc97e06d9c"),
  "sections" : [
    {
      "_id" : ObjectId("56fea43a571332cc97e06d9e"),
      "registered" : [
        "123",
        "e3d65a4e-2552-4995-ac5a-3c5180258d87"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想删除只有特定部分'e3d65a4e-2552-4995-ac5a-3c5180258d87'registered数组中的._id'56fea43a571332cc97e06d9e'

我目前的尝试是这样的,但它只是返回未修改的原始文档.

db.test.findOneAndUpdate(
{
  $and: [
    {'sections._id': ObjectId('56fea43a571332cc97e06d9e')},
    {'sections.registered': 'e3d65a4e-2552-4995-ac5a-3c5180258d87'}
  ]
},
{
  $pull: {
    $and: [
      {'sections._id': ObjectId('56fea43a571332cc97e06d9e')},
      {'sections.registered': 'e3d65a4e-2552-4995-ac5a-3c5180258d87'}
    ]
  }
})
Run Code Online (Sandbox Code Playgroud)

我已经查看了$pull,但我似乎无法弄清楚如何使它适用于包含另一个数组的嵌套对象数组.这些$pull例子似乎只涉及一个嵌套级别.如何删除从匹配条目registered的项目阵列中sections与阵列_id,我的供应?

arrays mongodb mongodb-query subdocument

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

从Spring/MongoDB findAndModify返回旧实体和新实体

我们通过Spring Data使用MongoDB,并依靠findAndModify操作来更新现有实体或创建新实体.

findAndModify我们可以配置为使用返回实体的旧状态或新实体returnNew(...).

有没有办法从旧的和新的实体返回findAndModify

我们需要在更新之前和之后比较实体状态,这就是我们需要两个实例的原因.

目前我们正在诉诸requireNew(false)并手动更新旧实例的副本,如下所示:

public Pair<Data> saveItems(String id, List<Item> items) {
    final Query findById = ...;

    final Update update = new Update();
    // This is what we actually update
    update.set(ENTITY_FIELD_ITEMS, newItems);
    update.inc(ENTITY_FIELD_VERSION, 1);
    // Try updating and return the old data 
    final Data oldData = operations.findAndModify(findById, update,
        FindAndModifyOptions.options().upsert(true).returnNew(false), Data.class);

    // Copy or create new instance
    final Data newData;
    if (oldData == null) {
        newData = new Data(id);
    } …
Run Code Online (Sandbox Code Playgroud)

spring mongodb mongodb-java spring-data mongodb-query

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

使用 PyMongo 创建 NumberLong 整数

mongodb 中的整数值记录了其保存的 32int。我想在 mongodb 中保存 64 位值。

代码在这里:

import time
import datetime
from pymongo import MongoClient
client = MongoClient()
client = MongoClient('localhost', 27017)
db = client.test_database
data = {}
data['num'] = 100
data['createAt'] = datetime.datetime.now()
curTime = datetime.datetime.now()
curTime =  int(time.mktime(curTime.timetuple()))
data['time'] = curTime
db.test.insert(data)
Run Code Online (Sandbox Code Playgroud)

结果:

{ 
     "_id" : ObjectId("583420ce7e60a74345c97624"), 
     "num" : NumberInt(100), 
     "createAt" : ISODate("2016-11-22T15:41:18.773+0000"), 
     "time" : NumberInt(1479811278) 
}
Run Code Online (Sandbox Code Playgroud)

想要的结果是:

{ 
     "_id" : ObjectId("583420ce7e60a74345c97624"), 
     "num" : NumberLong(100), 
     "createAt" : ISODate("2016-11-22T15:41:18.773+0000"), 
     "time" : NumberLong(1479811278) 
}
Run Code Online (Sandbox Code Playgroud)

它存储在 NumberInt 而不是 NumberLong

python mongodb pymongo mongodb-query

8
推荐指数
2
解决办法
6614
查看次数