小编Ton*_*czz的帖子

从python中的列表中删除重复的JSON对象

我有一个dict列表,其中特定值重复多次,我想删除重复的值.

我的列表:

te = [
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      }
    ]
Run Code Online (Sandbox Code Playgroud)

用于删除重复值的函数:

def removeduplicate(it):
    seen = set()
    for x in it:
        if x not in seen:
            yield x
            seen.add(x)
Run Code Online (Sandbox Code Playgroud)

当我调用这个函数时,我得到了generator object.

<generator object removeduplicate at 0x0170B6E8>
Run Code Online (Sandbox Code Playgroud)

当我尝试迭代生成器时,我得到了 TypeError: unhashable type: 'dict'

有没有办法删除重复值或迭代生成器

python json dictionary list generator

7
推荐指数
2
解决办法
7986
查看次数

如何在Nestjs DatabaseModule中使用ConfigService

我使用Nestjs typeorm创建了一个 DatabaseModule

import { createConnection } from 'typeorm';
import { ConfigService } from '@nestjs/config';


export const databaseConnection = [
    {
        provide: 'DATABASE_CONNECTION',
        useFactory: async (configService: ConfigService) => await createConnection({
            type: configService.get('DBTYPE'),
            host: configService.get('DBHOST'),
            port: configService.get('DBPORT'),
            username: configService.get('DBUSERNAME'),
            password: configService.get('DBPASSWORD'),
            database: configService.get('DBNAME'),
            synchronize: true,
            entities: [
                __dirname + '/../**/*.entity.ts'
            ]
        })
    }
];
Run Code Online (Sandbox Code Playgroud)

启动其余服务时,出现以下错误

Cannot read property 'get' of undefined - {"stack":["TypeError: Cannot read property 'get' of undefined

    at InstanceWrapper.useFactory [as metatype] (../database/database.provider.js:9:33)
    at Injector.instantiateClass (../node_modules/@nestjs/core/injector/injector.js:293:55)
    at callback (../node_modules/@nestjs/core/injector/injector.js:77:41) …
Run Code Online (Sandbox Code Playgroud)

typeorm nestjs nestjs-config

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

@ gen.coroutine没有在龙卷风的python中定义

我正在开发一个网络,我正在使用带电机的龙卷风服务器.我使用生成器从集合中查找文档.当代码执行时,我得到一个错误,说没有定义@gen.电机,tornado.iolooptornado.web已导入.

@gen.coroutine
def do_find_one():
    document = yield db.users.find_one()
    print (document)
Run Code Online (Sandbox Code Playgroud)

还有一件事是无法使用Ctrl+ 关闭Web服务器C.我必须每次关闭终端然后从头开始.有没有办法停止终端本身的服务.

python generator tornado

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

Django 使用 models.ImageField 将 Base64 字符串保存到文件系统

我正在尝试使用 python django 将图像上传到文件系统。我不知道如何进一步进行。

在我的 model.py 中:

Class Test(object):
    mission = models.TextField(blank=True)
    image = models.ImageField(upload_to='documents/images/',blank=True)
    account = models.OneToOneField(Account, related_name='account')
Run Code Online (Sandbox Code Playgroud)

在我看来.py

def add_image(request, account):
    req = get_request_json(request)
    data = Test.objects.add_image(account, req)
Run Code Online (Sandbox Code Playgroud)

在我的经理.py

Class TestManager(models.Manager):
    def add_image(self, account, input):
        acc = self.get(account=account)
        acc.save()

        return acc;
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从这里继续。

我想知道如何将base64图像字符串保存到指定位置并将路径/文件名存储到数据库中?

我使用 python 将文件写入目录并获取路径并存储在数据库中。这里我想使用 django 选项。

我也必须对其他文件格式重复相同的过程。

python django image imagefield

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

python自定义JSON编码器/解码器无法按预期工作

我正在尝试编码/解码嵌套对象,并且我将嵌套对象列表作为字符串而不是 JSON 对象。

class A:
    def __init__ (self, n, a):
        self.n = n
        self.a = a

class B:
    def __init__ (self, b, listOfA):
        self.b = b
        self.listOfA = []
        for a in listOfA:
            self.listOfA.append(a)

class AEncoder:
    def default (self, obj):
        if isinstance (obj, A):
            return {
                'n' : obj.n
                'a' : obj.a
            }
        return json.JSONEncoder.default(self, obj)

class BEncoder:
    def default (self, obj):
        if isinstance (obj, B):
            return {
                'b' : obj.n
                'listOfA' : json.dumps(obj.listOfA, cls=AEncoder)
            }
        return json.JSONEncoder.default(self, obj)

listOfA …
Run Code Online (Sandbox Code Playgroud)

python json

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

Python - 如何删除json字符串中的最后一个逗号(,)

嗨,我刚刚开始尝试使用python和龙卷风以及mongodb(我是新手).我编写了一个简单的get函数来获取我的mongodb中的所有值并以JSON格式返回它.问题是当我尝试将输出写为JSON字符串时,我在集合的最后一条记录之后得到一个尾随逗号(,).

class TypeList(APIHandler):
@gen.coroutine
def get(self):
    cursor = db.vtype.find()
    self.write("{"'"success"'": 1, "'"data"'":[")
    while (yield cursor.fetch_next):
        document = cursor.next_object()
        self.write(format(JSONEncoder().encode(document)))
        self.write(",")
    self.write("]}")

class JSONEncoder(json.JSONEncoder):
def default(self, o):
    if isinstance(o,ObjectId):
        return str(o)
    return json.JSONEncoder.default(self, o)
Run Code Online (Sandbox Code Playgroud)

我的输出就像

{"success": 1, "data":[{"_id": "55a5e988545779f35d3ecdf4", "name": "fgkd", "city": "fghj"},{"_id": 12345.0, "name": "adfs", "city": "asd"},]}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何在我的最后一条记录之后摆脱那个尾随的逗号(,),因为那个逗号我收到错误的JSON字符串错误

我尝试过使用json转储

@gen.coroutine
def get(self):
    cursor = db.vtype.find({"brand": "Tata"})
    while (yield cursor.fetch_next):
        document = cursor.next_object()
        self.write(json.dumps(document,default=json_util.default))
Run Code Online (Sandbox Code Playgroud)

把输出作为

{"Reg": "11ts", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}, "Name": "Alex"}{"Reg": "12ts", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}, "Name": "asdf"}

使用时 dumps[{ "data": …

python json

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

使用find()Motor [MongoDB + Tornado]时出现BadYieldError

我是python龙卷风框架的新手.我在MongoDB中有一小部分数据.我在我的python文件中使用了一个简单的get函数.我BadYieldError在使用该db.collection.find()选项时得到了一个.但db.collection.find_one()工作正常但它只显示一条记录.

import tornado
import bson
from bson import json_util
from bson.json_util import dumps
class TypeList(APIHandler):
@gen.coroutine
def get(self):
    doc = yield db.vtype.find()
    self.write(json_util.dumps(doc))
Run Code Online (Sandbox Code Playgroud)

错误是:

tornado.gen.BadYieldError:产生未知对象MotorCursor()

python json mongodb tornado-motor

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

Hashicorp 金库:无法使用节点金库写入机密

我正在编写一个使用 HashicorpVault 来存储密码和证书的应用程序。现在我正在使用默认的用户名/密码方法来验证我的客户端应用程序。

当我尝试添加秘密时,我在{ statusCode: 301, body: undefined }设置apiVersion = v1{ statusCode: 404, body: { errors: [] } }当它设置为 时得到v2

配置:

let vaultOptions = {
    apiVersion: 'v2',
    endpoint: '0.0.0.0:8200'
};

const nodeVault = require('node-vault')(vaultOptions);
nodeVault.token = "secret token";

nodeVault.write('/secret/new', {"foo":"bar"}).then(
  function (value: any) {
    console.log(value);
  })
  .catch((err: any)=> {
    console.log(err);
  });
Run Code Online (Sandbox Code Playgroud)

由于保管库容器默认已初始化,因此我没有使用该init功能。

我想知道我在这里缺少什么。

node.js typescript hashicorp-vault

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