我有一个对象,如下所示:
test: {a:"value1",b:"value2",...},
Run Code Online (Sandbox Code Playgroud)
我想省略某些参数,而将其余参数放入一个新数组中
eg: get {a:"value1",... } i want to omit b:"value1"
Run Code Online (Sandbox Code Playgroud)
如何使用一个或多个衬里使用javascript执行此操作。
我有以下三行要使用 psql 在命令行中运行,我该怎么做。
CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
Run Code Online (Sandbox Code Playgroud)
我只想按原样传递 sql 字符串。
在Python中,当我想在调试期间漂亮地打印一个对象时,我使用
print(json.dumps(obj.__dict__), indent=4, sort_keys=True)
Run Code Online (Sandbox Code Playgroud)
因为仅仅使用print(obj)可读性不是很好
然后,如果某些项目不可序列化,则会显示
Object of type SOMETHING is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
所以我的目标是在调试时检查一个对象,而不是让一个完美的序列化对象传递它,然后再转换回来。
我通过添加尝试了以下操作default=str以避免错误,并且在很多情况下都有效
print(json.dumps(obj.__dict__), indent=4, sort_keys=True, default=str)
Run Code Online (Sandbox Code Playgroud)
但在某些情况下仍然显示
Object of type SOMETHING is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
那么如何解决这个问题呢。
我正在尝试的对象来自 Django 项目。我正在尝试使用的帮助来漂亮地打印json.dumps
from django.db import connections
import json
for c in connections.all():
c_dict = {k: getattr(c, k) for k in dir(c)} # this gives all the properties listed using dir(c)
print(json.dumps(c_dict), indent=4, sort_keys=True, default=str)
Run Code Online (Sandbox Code Playgroud)
回答:
@milanbalanz 在评论中回答了这个问题。typo error它是括号中的一个。因此default=str,它的缩进错误是有效的
print(json.dumps(c_dict), indent=4, …Run Code Online (Sandbox Code Playgroud) 我os.scandir用于获取文件夹中的文件列表:
img_list2 = os.scandir('/home/shared/test')
Run Code Online (Sandbox Code Playgroud)
我想获得第一个元素。
我在尝试 img_list2.next()
>>> img_list2.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'posix.ScandirIterator' object has no attribute 'next'
Run Code Online (Sandbox Code Playgroud)
所以我试过:
>>> filt = list(img_list2)
>>> type(filt)
<class 'list'>
>>> globals()['filt']
[<DirEntry 'panaroma00010.jpg'>, <DirEntry 'panaroma00014.jpg'>, <DirEntry 'panaroma00004.jpg'>, <DirEntry 'panaroma00013.jpg'>, <DirEntry 'panaroma00007.jpg'>, <DirEntry 'panaroma00011.jpg'>, <DirEntry 'panaroma00012.jpg'>, <DirEntry 'panaroma00006.jpg'>, <DirEntry 'panaroma00009.jpg'>, <DirEntry 'panaroma00001.jpg'>, <DirEntry 'panaroma00003.jpg'>, <DirEntry 'panaroma00005.jpg'>, <DirEntry 'panaroma00002.jpg'>, <DirEntry 'panaroma00008.jpg'>]
>>> filt[1]
<DirEntry 'panaroma00014.jpg'>
>>>
Run Code Online (Sandbox Code Playgroud)
所以就像在列表中我们可以获得第一个元素值,我们可以从os.scandir?
我在 virtualenv 中有 python 项目。我是用pycharm打开的。
后来我从 virtualenv 内部使用 pip 安装了一些软件包,但不是从 pycharm 而是直接从命令行安装。
但是在 pycharm > settings > python interpreter 中:它没有显示我刚刚从 pycharm 外部安装的包。
我尝试选择另一个解释器并返回,仍然没有显示从 pycharm 外部安装的包。
我已经重新启动 pycharm 仍然没有运气。
知道如何在 pycharm 中刷新 python 包
我有以下 docker-compose 文件:
version: '3'
services:
web:
build:
context: ./django_httpd_mod_wsgi
ports:
- "8000:80"
db:
build:
context: ./postgresql
volumes:
- db-data:/var/lib/postgres/data
volumes:
db-data:
Run Code Online (Sandbox Code Playgroud)
我正在使用 archlinux 构建 psotgresql 映像:
以下是我的 postgresql Dockerfile:
FROM archlinux/base
RUN yes | pacman -S postgresql
RUN mkdir /run/postgresql/
RUN chown -R postgres:postgres /run/postgresql/
USER postgres
RUN initdb -D /var/lib/postgres/data
RUN psql -c 'CREATE DATABASE btgapp;'
RUN psql -c "CREATE USER simha WITH PASSWORD 'krishna';"
RUN psql -c 'GRANT ALL PRIVILEGES ON DATABASE btgapp TO simha;'
CMD ["/usr/bin/postgres","-D","/var/lib/postgres/data"] …Run Code Online (Sandbox Code Playgroud) 我最近试图了解什么是 WSGI 应用程序:
WSGI 应用程序只是一个可调用对象,它传递一个环境 - 一个包含请求数据的字典,以及一个被调用以开始发送响应的 start_response 函数。
为了将数据发送到服务器,您所要做的就是调用 start_response 并返回一个可迭代对象。
所以,这是一个简单的应用程序:
Run Code Online (Sandbox Code Playgroud)def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return ['Hello World!']
Django 的 wsgi.py 是
"""
WSGI config for basic_django project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'basic_django.settings')
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)
但是当我看到 wsgi.py 时,application = get_wsgi_application()可调用对象没有通过environ或start_response函数传递
那么如何理解这一点
我在 docker 中有一个服务,组成如下。
nginx:
image: nginx:1.18.0-alpine
ports:
- 8000:80
volumes:
- ./nginx/localhost/conf.d:/etc/nginx/conf.d
- ./entrypoint.sh:/entrypoint.sh
entrypoint: ./entrypoint.sh
depends_on:
- webapp
networks:
- nginx_network
Run Code Online (Sandbox Code Playgroud)
我收到错误
Cannot start service nginx: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/entrypoint.sh": permission denied: unknown
ERROR: for nginx Cannot start service nginx: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/entrypoint.sh": permission denied: unknown
ERROR: Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点
我有一个Django模型如下所示:我知道我们可以在Meta类中设置默认顺序.
class Ingredient(models.Model):
name = models.CharField(max_length=200,unique=True,null=False)
slug = models.SlugField(unique=True)
class Meta:
ordering = ["name"]
Run Code Online (Sandbox Code Playgroud)
由于订购设置在这里命名.我发现的是,它是通过区分大小写的.那么如何使它不区分大小写
django ×2
postgresql ×2
python ×2
archlinux ×1
docker ×1
javascript ×1
json ×1
pycharm ×1
python-3.x ×1
wsgi ×1