使用Python从数据库创建带有数组的有效JSON
我正在尝试使用Python获取这样的JSON文件,并在Linux系统上从MariaDB获取数据。我怎样才能做到这一点使用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
{
"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”