Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python从数据库创建带有数组的有效JSON_Python_Arrays_Json_Mariadb_Simplejson - Fatal编程技术网

使用Python从数据库创建带有数组的有效JSON

使用Python从数据库创建带有数组的有效JSON,python,arrays,json,mariadb,simplejson,Python,Arrays,Json,Mariadb,Simplejson,我正在尝试使用Python获取这样的JSON文件,并在Linux系统上从MariaDB获取数据。我怎样才能做到这一点 { "data": [ { "city": "A", "age": "21" }, { "city": "B", "age": "45" } ] } 以下是我的Python文件的外观: import csv import datetime import mysql.connector as

我正在尝试使用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"
  },
...
]

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

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

{'data':命名为dict}
?你的意思是这样吗?names_as_dict=[]names2_as_dict={“data”:names_as_dict}如果是,这不起作用:回溯(最后一次调用):文件“script_db.py”,第22行,在names2_as_dict.append(name_as_dict)AttributeError中:“dict”对象没有属性“append”否,因为这是传递给
json.dump
@juanpa.arrivillaga的。非常感谢。你是说像这样
names_as_dict=[]names2_as_dict={“data”:names_as_dict}
如果是,这不起作用:
Traceback(最后一次调用):names2_as_dict.append(name_as_dict)AttributeError中的文件“script_db.py”,第22行:“dict”对象没有属性“append”