2015-05-19 3 views
0

Я получаю данные из PostgreSQL с помощью питонаФорматирование данных в формате JSON

import psycopg2 
import json 

conn = psycopg2.connect(database="testdb", user="openpg", password="openpgpwd", host="127.0.0.1", port="5432") 
print "Opened database successfully" 

cur = conn.cursor() 

cur.execute("SELECT id, name, address, salary from COMPANY") 
rows = cur.fetchall() 

print "Operation done successfully"; 

Тогда я пытаюсь форматировать эти данные в формате JSON: с помощью следующей команды:

result = json.dumps(rows) 

for row in result: 
    print row 

, но я получаю каждый caracteres ид, имя, адрес ... в отдельной строке:

, например: имя = а , когда выполнить сценарий я получаю:

б

с

ответ

2

Ваш результат (rows) является строкой (это то, что json.dumps() возвращается). Вот почему, когда вы повторяете строки, вы повторяете и печатаете каждый символ.

вобще print rows вместо

0

json.dumps() возвращает строку, поэтому итерация возвращает каждый символ.

Чтобы получить поток, используйте json.dump()

Смежные вопросы