我想监视mySql数据库以获取其性能的更新,所以我执行了一个查询show global status;这给了我一个类似Uptime, aborted_connections等变量的列表
但是我想以json格式导出结果,我能用python脚本实现吗?
我现在所做的是已将查询结果导出到.csv文件。
尝试使用以下python代码将csv文件转换为jsonimport csv
import json
csvfile = open ('./tempp/op.csv','r')
jsonfile = open('./tempp/op.json','w')
fieldnames = ("Variable_name","Value")
reader = csv.DictReader(csvfile,fieldnames)
for row in reader:
json.dump(row,jsonfile)
jsonfile.write('\n')
问题:上面的脚本没有给出所需的结果{"Value": null, "Variable_name": "Variable_name\tValue"}
{"Value": null, "Variable_name": "Aborted_clients\t0"}
{"Value": null, "Variable_name": "Aborted_connects\t7"}
{"Value": null, "Variable_name": "Binlog_cache_disk_use\t0"}
{"Value": null, "Variable_name": "Binlog_cache_use\t0"}
{"Value": null, "Variable_name": "Binlog_stmt_cache_disk_use\t0"}
{"Value": null, "Variable_name": "Binlog_stmt_cache_use\t0"}这似乎是一种错误的方法,首先将结果写入文件,然后从中读取数据。有没有更好的方法可以直接将mySql查询的结果转换为json对象?
Edit基于答案:
我的op.csv文件看起来像:Variable_name Value
Aborted_clients 0
Aborted_connects 7
Binlog_cache_disk_use 0
Binlog_cache_use 0
Binlog_stmt_cache_disk_use 0
Binlog_stmt_cache_use 0
Bytes_received 31075
Bytes_sent 1891186
Com_admin_commands 445
Com_assign_to_keycache 0
Com_alter_db 0
Com_alter_db_upgrade 0