用python格式化数据

用python格式化数据,python,json,api,python-requests,Python,Json,Api,Python Requests,我正在使用Python请求库发出rest请求 API正在接受以下格式的数据 aspected_data = { "UseAgentBreakdown": false, "Activities": ["Lesson 3: Redeem"], "ReportLevel": { "ParentLevel": [

我正在使用Python请求库发出rest请求

API正在接受以下格式的数据

aspected_data = 
    {
      "UseAgentBreakdown": false,
      "Activities": ["Lesson 3: Redeem"],
      "ReportLevel": 
                      {
                          "ParentLevel": [
                                          {
                                              "LevelID": "myretail",
                                              "Level": "COL_NUM8_VAL"
                                        }
                                        ],
                        "CurrentLevel": "COL_NUM5_VAL",
                        "NameField": "COL_NUM5_VAL"
                    }
    }
但我的代码生成的数据类似于

data =     {'UseAgentBreakdown': 'False', 'Activities': u"['Lesson 3: Redeem']", 'ReportLevel': u"{'ParentLevel': [{'LevelID': 'myretail', 'Level': 'COL_NUM8_VAL'}], 'CurrentLevel': 'COL_NUM5_VAL', 'NameField': 'COL_NUM5_VAL'}"}
基本上这就是我生成数据的方式

   data = { "Activities" : learningtype,
                 "UseAgentBreakdown": str(agentbreakdown),
                 "ReportLevel" : reportlevel
                 }
在哪里

print learnertype   o/p is     ['Lesson 3: Redeem']
print agentbreakdown o/p is   False
print reportlevel    o/p is {'ParentLevel': [{'LevelID': 'myretail', 'Level': 'COL_NUM8_VAL'}], 'CurrentLevel': 'COL_NUM5_VAL', 'NameField': 'COL_NUM5_VAL'}

我尝试使用
json转储数据。dumps(data)
对我也没有帮助。请帮助我如何生成上述格式。

我看不出您怀疑的两个数据值之间有什么区别。为了确保您可以检查口译员是否认为他们不同,请执行以下操作:

data =     {'UseAgentBreakdown': 'False', 'Activities': u"['Lesson 3: Redeem']", 'ReportLevel': u"{'ParentLevel': [{'LevelID': 'myretail', 'Level': 'COL_NUM8_VAL'}], 'CurrentLevel': 'COL_NUM5_VAL', 'NameField': 'COL_NUM5_VAL'}"}
a_data =     {'UseAgentBreakdown': 'False', 'Activities': u"['Lesson 3: Redeem']", 'ReportLevel': u"{'ParentLevel': [{'LevelID': 'myretail', 'Level': 'COL_NUM8_VAL'}], 'CurrentLevel': 'COL_NUM5_VAL', 'NameField': 'COL_NUM5_VAL'}"}
data == a_data

打印
True

您似乎遇到的一个问题是试图使用
json的数据。转储包含字符串

如果您可以以
列表的形式获取learningtype的数据,则以
bool的形式获取agentbreakdown的数据,以
dict的形式获取reportlevel的数据,以及以
dumps的形式获取reportlevel的数据,这将为您提供所需的信息

agentbreakdown = False
activities = [...insert list elements here...]
reportlevel = {...}

data = { "Activities" : learningtype,
             "UseAgentBreakdown": agentbreakdown,
             "ReportLevel" : reportlevel
             }

json.dumps(data, indent=4)
给予


@traceur实际上是单qoute和u“[“第3课:兑换]”(额外的双引号会产生问题)
{
    "UseAgentBreakdown": false,
    "Activities": [
        "Lesson 3: Redeem"
    ],
    "ReportLevel": {
        "ParentLevel": [
            {
                "LevelID": "myretail",
                "Level": "COL_NUM8_VAL"
            }
        ],
        "CurrentLevel": "COL_NUM5_VAL",
        "NameField": "COL_NUM5_VAL"
    }
}