2014-04-11 45 views
0

我正在使用Python-request库进行其余请求。在python中格式化数据

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)这也是没有帮助我。请帮助我如何能够倾倒数据我生成上面的格式。

+0

@traceur实际上单qoute and u“['Lesson 3:Redeem']”(额外的双引号就是产生问题) – user1481793

回答

0

我没有看到你怀疑的两个数据值之间的差异。只是要确保你可以检查是否解释认为它们是不同的,这样做:

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

+0

我希望aspects的数据能够看到更新的问题 – user1481793

0

你们其中一人似乎是有问题的是数据你想使用json.dumps上包含字符串。

如果你可以得到learningtype数据为list,agentbreakdown作为bool和reportlevel作为dictdumps应该给你你想要的东西

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

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

json.dumps(data, indent=4) 

{ 
    "UseAgentBreakdown": false, 
    "Activities": [ 
     "Lesson 3: Redeem" 
    ], 
    "ReportLevel": { 
     "ParentLevel": [ 
      { 
       "LevelID": "myretail", 
       "Level": "COL_NUM8_VAL" 
      } 
     ], 
     "CurrentLevel": "COL_NUM5_VAL", 
     "NameField": "COL_NUM5_VAL" 
    } 
}