Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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子对象_Json_Python 3.x - Fatal编程技术网

使用python集合模块创建json子对象

使用python集合模块创建json子对象,json,python-3.x,Json,Python 3.x,我试图构建一个json文档,作为post正文请求传递给api 我从mssql中提取数据作为arrray列表,然后使用集合模型创建一个有序字典。需要有关如何创建子对象的帮助吗 import json, collections rowarray_list = [] for row in rows: t = (row.NameLine1, row.NameLine2, row.Phone, row.Mobile, row.Fax, row.Slogan, row.Addr

我试图构建一个json文档,作为post正文请求传递给api

我从mssql中提取数据作为arrray列表,然后使用集合模型创建一个有序字典。需要有关如何创建子对象的帮助吗

import json, collections

rowarray_list = []

for row in rows:
    t = (row.NameLine1, row.NameLine2, row.Phone, row.Mobile, 
        row.Fax, row.Slogan, row.Address, row.City, row.State, row.Zip, 
        row.Email, row.WebSite, row.ApplyOnline,
        row.Preflight, row.Facebook, row.LinkedIn, row.Username)
    rowarray_list.append(t)

objects_list = []
for row in rows:
    d = collections.OrderedDict()
    d['Name'] = row.NameLine1
    d['Phone'] = row.Phone
    d['Mobile'] = row.Mobile
    d['Fax'] = row.Fax
    d['Slogan']=row.Slogan
    d['Address']=row.Address
    d['City'] = row.City
    d['State'] = row.State
    d['Zip'] = row.Zip
    d['Email']=row.Email
    d['Website']=row.WebSite
    d['ApplyOnline']=row.ApplyOnline
    d['Preflight']=row.Preflight
    d['Facebook']=row.Facebook
    d['LinkedIn']=row.LinkedIn
    d['Username']=row.Username
    objects_list.append(d)

json.dumps(objects_list)
我希望json对象的构建方式如下:

{"type": "task1",
 "body": {"Name": row.NameLine
          "Phone": row.Phone
          ... }}

我似乎不知道该怎么做,我用另一种方法解决了这个问题。为每行创建一个dictionary对象并将其附加到dictionary列表。然后使用json库创建完整的json对象

rowarray_list=[]    
for row in rows:
        subdt = dict(Name=row.NameLine1, Title=row.NameLine2, Phone=row.Phone, Mobile=row.Mobile, 
             Fax=row.Fax, Slogan=row.Slogan, Address=row.Address, City=row.City, State=row.State, Zip=row.Zip, Email=row.Email, WebSite=row.WebSite, ApplyOnline=row.ApplyOnline,
             Preflight=row.Preflight, Facebook=row.Facebook, LinkedIn=row.LinkedIn, Username=row.Username)
        dt=dict(action='fetchView', body=subdt)
        rowarray_list.append(dt)

print(json.dumps(rowarray_list))
cursor.close()

您的
json
格式只允许一个
正文
dict
,没有列表,您不能发送多个
s。你能修好你的缩进吗。
rowarray\u list
是干什么的?对python和编程来说还是一点新鲜的东西,请原谅我的无知。我遵循这里使用的一些逻辑。“rowarray_list构建一个元组列表,数据库中的每一行变成一个元组”我使用marshmallow库并创建类来为每个记录构建字典和嵌套字典对象。我将结果添加到列表中,然后使用json.dumps根据我创建的字典列表构建json。