如何在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) 我有一个包含不同数量列的Excel文件,我想使用Python循环遍历该文件的某些列(来自其标题行值),然后将这些列写入(复制)到另一个Excel文件.
有关如何做到这一点的任何例子吗?
当我使用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的新手,任何帮助都会受到赞赏.
我有一个清单:
A = ['Yes']
Run Code Online (Sandbox Code Playgroud)
我希望有
A = ['Yes',None]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想将我的查询结果转换为这样的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)?
请帮忙
我想知道在将大型数组编码为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()
?
我的哈希看起来像这样:
$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) 我编写了一个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)
得到我的输出.任何帮助将非常感激.
我有一个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)
所以我假设我应该做一个自定义排序?任何提示或帮助将不胜感激.
我有一个如下所示的列表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 ×9
sqlalchemy ×4
json ×2
append ×1
dictionary ×1
excel ×1
grep ×1
list ×1
mysql ×1
nonetype ×1
perl ×1
python-2.7 ×1
sorting ×1
xlrd ×1
xlsxwriter ×1
xlwt ×1