小编sal*_*mey的帖子

sqlalchemy IS NOT NULL选择

如何在SQL中添加过滤器以从特定列中选择NOT NULL值?

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)

如何使用SQLAlchemy过滤器执行相同的操作?

select = select(table).select_from(table).where(all_filters) 
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

使用Python,编写一个Excel文件,其中包含从另一个Excel文件复制的列

我有一个包含不同数量列的Excel文件,我想使用Python循环遍历该文件的某些列(来自其标题行值),然后将这些列写入(复制)到另一个Excel文件.

有关如何做到这一点的任何例子吗?

python excel xlrd xlwt xlsxwriter

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

SQLAlchemy将SELECT查询结果转换为dicts列表

当我使用session.query时,我能够将结果转换为dicts列表:

my_query = session.query(table1,table2).filter(all_filters)
result_dict = [u.__dict__ for u in my_query.all()]
Run Code Online (Sandbox Code Playgroud)

但是现在我必须使用该SELECT()操作,如何将结果转换为看起来像每个行结果的dict:

[{'Row1column1Name' : 'Row1olumn1Value', 'Row1column2Name' :'Row1Column2Value'},{'Row2column1Name' : 'Row2olumn1Value', 'Row2column2Name' : 'Row2Column2Value'},etc....].

这是我的SELECT()代码:

select = select([table1,table2]).where(all_filters)
res = conn.execute(select)
row = res.fetchone() #I have to use fetchone() because the query returns lots of rows
resultset=[]
while row is not None:
    row = res.fetchone()
    resultset.append(row)

print resultset
Run Code Online (Sandbox Code Playgroud)

结果是:

[('value1', 'value2', 'value3', 'value4'),(.....),etc for each row]
Run Code Online (Sandbox Code Playgroud)

我是Python的新手,任何帮助都会受到赞赏.

python sqlalchemy

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

9
推荐指数
2
解决办法
3万
查看次数

将sqlalchemy查询结果转换为dicts列表

我想将我的查询结果转换为这样的dicts列表:

result_dict = [{'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic'}, {'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}]
Run Code Online (Sandbox Code Playgroud)

但相反,我把它作为一个字典,因此重复键:

result_dict = {'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic', 'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}
Run Code Online (Sandbox Code Playgroud)

我通过这样做得到这个结果:

for u in my_query.all():
     result_dict = u.__dict__
Run Code Online (Sandbox Code Playgroud)

如何将sqlAlchemy查询结果转换为dicts列表(每行都是dict)?

请帮忙

python sqlalchemy

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

使用json.dumps()的MemoryError

我想知道在将大型数组编码为json格式时哪一个json.dump()或哪个json.dumps()最有效.

你能告诉我一个使用的例子json.dump()吗?

实际上我正在使用ORM SQlAlchemy创建一个从MySQL数据库获取大量数据的Python CGI,并且在一些用户触发处理之后,我将最终输出存储在最终转换为Json的Array中.

但是当转换为JSON时:

 print json.dumps({'success': True, 'data': data}) #data is my array
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "C:/script/cgi/translate_parameters.py", line 617, in     <module>
f.write(json.dumps(mytab,default=dthandler,indent=4))
  File "C:\Python27\lib\json\__init__.py", line 250, in dumps
    sort_keys=sort_keys, **kw).encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 209, in encode
    chunks = list(chunks)
MemoryError
Run Code Online (Sandbox Code Playgroud)

所以,我的猜测是使用json.dump()块来转换数据.关于如何做到这一点的任何想法?

或者除了使用其他想法json.dump()

python mysql json sqlalchemy out-of-memory

4
推荐指数
2
解决办法
8988
查看次数

grep in nested hash perl

我的哈希看起来像这样:

$VAR1 = {
      '1238' => {
                  'OUT3FA_5' => 65,
                  'SEV' => '3_major',
                  'OUT3A_5' => 20,
                  'OUT3-Fix' => 45,
                  'IN1' => 85
                },
      '1226' => {
                  'OUT3FA_5' => 30,
                  'SEV' => '4_minor',
                  'OUT3A_5' => 5,
                  'OUT3-Fix' => 25,
                  'IN1' => 40
                },
      '1239' => {
                  'OUT3FA_5' => 56,
                  'SEV' => '4_minor',
                  'OUT3A_5' => 34,
                  'OUT3-Fix' => 22,
                  'IN1' => 94
                }]
Run Code Online (Sandbox Code Playgroud)

我希望我的Perl脚本只返回对应于"SEV"="4_minor"的值.在这种情况下,它将返回:

    '1226' => {
                  'OUT3FA_5' => 30,
                  'SEV' => '4_minor',
                  'OUT3A_5' => 5,
                  'OUT3-Fix' => 25,
                  'IN1' => 40 …
Run Code Online (Sandbox Code Playgroud)

perl grep

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

将python输出格式化为json

我编写了一个Python脚本,以Json格式输出一个长数据结构(我称之为"celldict"的字典).这是其中的一小部分:

{
    "1224": {
        "OUT3FA_5": 12,
        "IN1": 37,
        "Total_IN1": 37
    },
    "1225": {
        "OUT3FA_5": 24,
        "IN1": 59,
        "Total_IN1": 22
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想做的是这样的事情:

{
    "success": true,
    "data": [
        {
            "Week":"1224",
            "OUT3FA_5": 65,
            "IN1": 85,
            "Total_IN1": 100
        },
        {
            "Week":"1225",
            "OUT3FA_5": 30,
            "IN1": 40,
            "Total_IN1": 120
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法用Python格式化json输出以获得我想要的东西?我做:

print json.dumps(celldict)
Run Code Online (Sandbox Code Playgroud)

得到我的输出.任何帮助将非常感激.

python json dictionary

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

自定义排序的Python列表

我有一个dicts列表:

ldicts = [{'name': '120-150'}, {'name': '90-120'}, {'name': '150-180'}, {'name': '>= 180'}, {'name': '<90'}, {'name': 'total'}]
Run Code Online (Sandbox Code Playgroud)

我想按值升序对其进行排序,以便输出如下:

 sortedldicts = [{'name': 'total'}, {'name': '<90'}, {'name': '90-120'},{'name': '120-150'}, {'name': '150-180'}, {'name': '>= 180'}]
Run Code Online (Sandbox Code Playgroud)

正常排序不起作用:

from operator import itemgetter
sortedldicts = sorted(ldicts , key=itemgetter('name'), reverse=True)
Run Code Online (Sandbox Code Playgroud)

所以我假设我应该做一个自定义排序?任何提示或帮助将不胜感激.

python sorting

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

Python:动态拆分列表

我有一个如下所示的列表prodemployees:

['prd1 employe4 employe2', ' prd2 employe2']
Run Code Online (Sandbox Code Playgroud)

我需要这个列表的值来动态创建查询的"where"语句,我需要输出如下:

WHERE (product = 'prd1' AND employe IN ('employe4','employe2'))
OR
(product = 'prd2' AND employe IN ('employe2'))
Run Code Online (Sandbox Code Playgroud)

我试图在列表的每个值上拆分空白,并创建一个包含结果值的子列表,但在使用这些值时失败了.

我是Python的新手,感谢任何帮助.

splitOnSpace = []
for i in range(len(prodemployees)) :
  splitOnSpace = prodemployees[i].split()
    for j in range(len(splitOnSpace)) : 
       #this is where I should do something with splitOnSpace[j] I guess...
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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