Tag: python

如何将XSD转换为Python类

我只想知道是否有一个程序可以将JAXB用于Java的XSD文件转换为Python类?

我应该创build映射器对象还是在SQLAlchemy中使用声明性语法?

有两个(三个,但我不算Elixir ,因为它不是“官方”)用SQLAlchemy定义一个持久对象的方法: 映射器对象的显式语法 from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey from sqlalchemy.orm import mapper metadata = MetaData() users_table = Table('users', metadata, Column('id', Integer, primary_key=True), Column('name', String), ) class User(object): def __init__(self, name): self.name = name def __repr__(self): return "<User('%s')>" % (self.name) mapper(User, users_table) # &lt;Mapper at 0x…; User&gt; 声明语法 from sqlalchemy.ext.declarative import declarative_base […]

如何过滤(或replace)UTF-8中需要超过3个字节的unicode字符?

我正在使用Python和Django,但是我遇到了由于MySQL限制而导致的问题。 根据MySQL 5.1文档 ,他们的utf8实现不支持4字节的字符。 MySQL 5.5将使用utf8mb4支持4字节字符; 而且将来有一天, utf8也可能会支持它。 但是我的服务器还没有准备好升级到MySQL 5.5,因此我只能使用3个字节或更less的UTF-8字符。 我的问题是: 如何过滤(或replace)将需要超过3个字节的Unicode字符? 我想用官方的\ufffd ( U + FFFDreplace字符 )replace所有的4字节字符,还是用? 。 换句话说,我想要一个与Python自己的str.encode()方法非常相似的行为(当传递'replace'参数时)。 编辑:我想要一个类似于encode()的行为,但我不想实际编码string。 我想在过滤后仍然有一个unicodestring。 在存储到MySQL之前,我不想逃避这个angular色,因为那意味着我需要将我从数据库中获得的所有string都取消,这是非常烦人和不可行的。 也可以看看: 将某些unicode字符保存到MySQL (在Django票证系统中) 时出现“错误的string值”警告 '𠂉'不是一个有效的unicode字符,但在unicode字符集? (在堆栈溢出) [编辑]增加了有关build议解决scheme的testing 所以我得到了很好的答案。 谢谢,人民! 现在,为了select其中之一,我做了一个快速testing,find最简单,最快速的一个。 #!/usr/bin/env python # -*- coding: utf-8 -*- # vi:ts=4 sw=4 et import cProfile import random import re # How many times to […]

你如何看pdb中的variables

我正在debugging一个python脚本,我想看一个variables的变化(就像你可以在gdb中看内存地址一样)。 有没有办法做到这一点?

Python使用basicConfig方法login到控制台和文件

我不知道为什么这个代码打印到屏幕上,而不是文件? 文件“example1.log”被创build,但没有写在那里。 #!/usr/bin/env python3 import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(message)s', handlers=[logging.FileHandler("example1.log"), logging.StreamHandler()]) logging.debug('This message should go to the log file and to the console') logging.info('So should this') logging.warning('And this, too') 我通过创build一个日志logging对象( 示例代码 )“绕过”了这个问题,但是却让我不知道为什么basicConfig()方法失败了? PS。 如果我将basicConfig调用更改为: logging.basicConfig(level=logging.DEBUG, filename="example2.log", format='%(asctime)s %(message)s', handlers=[logging.StreamHandler()]) 然后,所有日志都在文件中,控制台中不显示任何内容

Pythonstring“\ xaa”中的前缀“\ x”是什么意思?

'aa'和'\xaa'什么'\xaa' ? \x部分是什么意思? Python文档的哪一章涵盖了这个主题?

对于string使用locals()和format()方法:是否有任何警告?

使用以下模式有什么缺点,警告或不良做法警告? def buildString(user, name = 'john', age=22): userId = user.getUserId() return "Name: {name}, age: {age}, userid:{userId}".format(**locals()) 我有一个非常重复的string生成代码来写,并试图使用这个,但有关使用locals()使我感到不舒服。 这是否有任何意外行为的危险? 编辑:上下文 我发现自己经常写这样的东西: "{name} {age} {userId} {etc}…".format(name=name, age=age, userId=userId, etc=etc)

numpy点()和Python 3.5+matrix乘法之间的区别@

我最近搬到了Python 3.5,注意到新的matrix乘法运算符(@)有时候与numpy的点运算符有所不同。 例如,对于3D数组: import numpy as np a = np.random.rand(8,13,13) b = np.random.rand(8,13,13) c = a @ b # Python 3.5+ d = np.dot(a, b) @运算符返回形状数组: c.shape (8, 13, 13) 而np.dot()函数返回: d.shape (8, 13, 8, 13) 我怎样才能重现与numpy点相同的结果? 还有其他的重大差异吗?

Python编译/解释过程

我试图更清楚地了解Python编译器/解释器的过程。 不幸的是,我还没有在翻译课上课,也没有多读这些课。 基本上,我现在明白的是,.py文件中的Python代码首先被编译成python字节码(我认为它是偶尔看到的.pyc文件)。 接下来,字节码被编译成机器代码,这是处理器实际理解的一种语言。 很多,我读过这个线程为什么Python解释之前编译源代码字节码? 有人能够对我的整个过程给予一个很好的解释,记住我对编译器/解释器的知识几乎是不存在的? 或者,如果这是不可能的,也许给我一些资源,快速浏览编译器/口译? 谢谢

Python:使用None作为字典键是否合理?

似乎没有一个字典的关键,但我想知道这是否会导致后来的麻烦。 例如,这工作: >>> x={'a':1, 'b':2, None:3} >>> x {'a': 1, None: 3, 'b': 2} >>> x[None] 3 我正在使用的实际数据是教育标准。 每个标准都与一个内容区域相关联。 一些标准也与内容分区相关联。 我想做一个forms{contentArea:{contentSubArea:[standards]}}的嵌套字典。 其中一些contentSubArea键将是None。 特别是,我想知道如果我find一个在某个时候不存在的密钥,或者这样的意外事件,这是否会导致混淆。