首页 > 解决方案 > 使用 Python 数据库中的数组创建一个有效的 JSON

问题描述

我正在尝试使用 Python 获取这样的 JSON 文件,并从 Linux 系统上的 MariaDB 获取数据。我怎样才能做到这一点?

{
  "data": [
    {
      "city": "A",
      "age": "21"
    },
    {
      "city": "B",
      "age": "45"
    }
  ]
}

这是我的 Python 文件的外观:

import csv
import datetime
import mysql.connector as mariadb
import simplejson
import os

mariadb_connection = mariadb.connect(user='user', password='passwd', database='db1')
cursor = mariadb_connection.cursor()
cursor.execute("SELECT name,age FROM persons ORDER BY name ASC")

data = cursor.fetchall()
names_as_dict = []

for row in data:
 name_as_dict = {
           'name' : row[0],
           'age' : row[1]
 }
 names_as_dict.append(name_as_dict)

with open('myfile.json', 'w') as f:
    simplejson.dump(names_as_dict, f)

该文件的输出:

[
  {
    "city": "A",
    "age": "21"
  },
  {
    "city": "B",
    "age": "45"
  },
...
]

标签: pythonarraysjsonmariadbsimplejson

解决方案


你可以用额外的字典来包装它

result = {'data': [{'name' : row[0],'age' : row[1]} for row in data]}

推荐阅读