【发布时间】:2017-09-18 15:32:33
【问题描述】:
我在python中有如下函数,即查询:
这个的输出是一个表格。
def queryNoScan(start_time_prod,date_object,start_time_scan,date_object_scan):
query_basictable = """
SELECT t1.Machine, t1.Production, t2.Scanned, (t1.Production-t2.Scanned) as Delta
FROM
(SELECT MCH_CODE as Machine, COUNT(CODE) AS Production
FROM table1
WHERE CODE = 'PROD' AND SUBCODE = 'MACH'
AND EVS_START between '%s'and '%s' and PP_CODE ='A'
GROUP BY MCH_CODE) t1
INNER JOIN
(SELECT MCH_CODE as Machine, COUNT(BARCODE) AS Scanned
FROM table2
WHERE TRC_TIMESTAMP between '%s'and '%s' AND PP_CODE ='A'
GROUP BY MCH_CODE) t2 ON t1.Machine=t2.Machine
ORDER BY Delta desc
""" %(start_time_prod,date_object,start_time_scan,date_object_scan)
scan_data = pd.read_sql(sql=query_basictable, con=engine)
return scan_data
如何将此函数的输出转换为字符串的 JSON,稍后我将在前端传递它们。 喜欢:“机器”:{“机器2”:14317等
【问题讨论】:
-
不要不使用字符串格式化操作来构建 SQL 查询。
-
你试过了吗:`return scan_data.to_json()`?
-
如果@chepner 不清楚,你应该这样做:bobby-tables.com/python.html
-
你好@JanZeiseweis。非常感谢。我已经使用了你的方法,但现在我得到的结果是这样的: {"Machine":{"0":"Machine","1":"Machine2"}} 。如何获得像机器 1 和机器 2 下的漂亮外观
-
另外@JanZeiseweis 请按回答问题以便我接受