Python で日本語を含む MySQL の select 結果を json で出力する最小限のコードをメモ Python2.7系 #!~\python2.7 # -*- coding: utf-8 -*- # utf8 output import sys import codecs sys.stdout = codecs.getwriter( 'utf_8' )(sys.stdout) # header print ( "Content-type: text/plain; charset=utf-8" ) print ( "" ) # mysql import mysql.connector import json conn = mysql.connector.connect( user = 'root' , password = 'passwd' , host = 'localhost' , database = 'myDB' ) cur = conn.cursor( dictionary = True ) try : cur.execute( "select * from myTable;" ) rows = cur.fetchall() print (json.dumps(rows, ensure_ascii = False )) finally : cur.close() conn.close() sys.stdout = codecs.getwriter('utf_8')(sys.stdout) で出力を UTF8に cursor で dictionary=True を指定することで、fetch内容に列名が入ってくるので jsonで利用しやすくなります MySQLdb を利用している場合は、cursor(MySQLdb.cursors.DictCursor) json.dumps で ensure_ascii=False を入れないと、"\u4e0d\u660e" みたいに ...