Python从POST方法获取JSON

2024-10-05 14:23:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

下面是json在我解析它之前到达python之后的文本转储:
{“Prob1”:“[1,2,3]”,“Name”:“aaa”,“action”:1,“Prob2”:“[20,20,20]”,“Tasks”:“[1任务,2任务,3任务]”,“Description”:“”}

如果我们看一下“Tasks”键,后面的列表显然是一个字符串,所有元素都被视为一个字符串(即每个元素周围没有引号)。prob1和prob2是一样的。行动、姓名等都可以。我不确定这是否是python所期望的,但我猜不是这样?在

为了防止android数据受到指责,我在arraylist的每个元素上加了引号:
任务.添加('"'+row.get(1) .toString()+“');而不是任务.添加(row.get(1) .toString())

在Web服务器上,它现在被接收为
{“Prob1”:“[1,2,3]”,“Name”:“aaa”,“action”:1,“Prob2”:“[20,20,20]”,“Tasks”:“[\”1任务\“,\“2 task\”,\“3 task\”,“Description”:“”}

但我仍然遇到同样的问题;当我在循环中遍历“Tasks”时,它会循环遍历每个单独的字符,就像整个事情都是一个字符串一样:/

由于我不知道json结构在进入Python之前应该是什么样子,所以我想知道是Android发送数据还是Python解释数据有问题。。不过从剧本的外观来看,我一直在猜测这是在发送。在

在Android应用程序中,我发送一个包含“Tasks”和相关arraylist的大JSONObject作为键值对之一。。。这是对的吗?或者JSONArray应该参与到任何地方吗?在

感谢大家的帮助,我对整个JSON以及Android/Java都是新手(而且我也是Python的新手)。我可以张贴额外的代码,如果有人需要它,我只是不想延长张贴太多

编辑:

当我添加
json_data=json_数据.替换(r'[','[')
json_data=json_数据.替换(r']',']')
json_data=json_数据.替换(r'\“','”)
对python来说,它是有效的!!!!但这让我觉得有点恶心,只是在掩饰一个裂缝。。在


Tags: 数据字符串namejson应用程序元素列表data
1条回答
网友
1楼 · 发布于 2024-10-05 14:23:38

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


Prob1和Prob2也一样。要成为一个有效的列表,方括号不应该用引号括起来。

相关问题 更多 >