Python从POST方法中获取JSON

时间:2011-04-12 05:41:53

标签: python android json

我有一个Android应用程序,最初将一些json格式的字符串发布到python cgi脚本,这一切都运行正常。问题是当json对象包含列表时,然后python(使用simplejson)获取它们时仍将它们视为一个大字符串

这是json在解析之前到达python的文本转储:
{“Prob1”:“[1,2,3]”,“名称”:“aaa”,“行动”:1,“Prob2”:“[20,20,20]”,“任务”:“[1任务,2任务,3任务]“,”描述“:”“}}

如果我们查看“任务”键,后面的列表显然是一个单独的字符串,所有元素都被视为一个字符串(即每个元素周围没有引号)。对于prob1和prob2来说,它是一样的。行动,名称等都很好。我不确定这是不是python所期待的,但我猜不是吗?

为了防止Android数据被指责,我在arraylist的每个元素周围添加引号,如下所示:
Tasks.add( ' “ '+ row.get(1)的ToString()+'”');而不是Tasks.add(row.get(1).toString());

在网络服务器上,它现在作为
收到了 {“Prob1”:“[1,2,3]”,“名称”:“aaa”,“动作”:1,“Prob2”:“[20,20,20]”,“任务”:“[\ “1个任务”,“2个任务”,“3个任务\”]“,”描述“:”“}

但我仍然遇到同样的问题;当我在一个循环中遍历“任务”时,它循环遍历每个单独的角色,好像整个东西都是一个字符串:/

因为我不知道json结构在进入Python之前应该是什么样子我想知道它是否是Android发送数据或我的python解释它的探测器......虽然从该脚本的外观我一直在猜测这是发送。

在Android App中,我发送一个包含“Tasks”的大型JSONObject,并将相关的arraylist作为键值对之一...这是正确的吗?或JSONArray应该在任何地方参与?

感谢大家的帮助,我对整个JSON以及Android / Java都很陌生(而且在Python上也只是一个新手......)。如果有人需要,我可以发布额外的代码,我只是不想过多地延长帖子

编辑:

当我加上时 json_data = json_data.replace(R“ '[', '[')
    json_data = json_data.replace(R ']“', ']')
    json_data = json_data.replace(R '\ “', '”')
它工作的蟒蛇!!!!但这让我觉得有点讨厌,只是在打破裂缝......

1 个答案:

答案 0 :(得分:1)

任务 只是一个大字符串。要成为一个有效的列表,它必须是[“1任务”,“2任务”,“3任务”]

<小时/> Prob1和Prob2也是如此。要成为有效列表,括号不应用引号括起来。