我有 QueryDict :
>>> from django.http import QueryDict
>>> q = QueryDict('a=1&a=2&c=3')
我需要一段返回此结果的代码:
{ u'a': [u'1',u'2'], u'c': u'3'}
我应该通知你,dict(q.iterlists())
会返回此信息:
{ u'a': [u'1', u'2'], u'c': [u'3']}
此致
答案 0 :(得分:2)
更短的答案:
@RestController
public class DataInsertController {
@RequestMapping(value = "data/api", consumes={MediaType.APPLICATION_JSON_VALUE},method = RequestMethod.POST)
public ResponseEntity<HostResponse> createAuthenticationToken(@RequestBody Map<String,Object> hostMap ) {
// handle json object exceptions to validate input
JSONObject jsonObject = new JSONObject(hostMap);
Host host = new ObjectMapper().readValue(jsonObject.toString() , Host.class);
System.out.println(host.getName());
return ResponseEntity.ok(new HostResponse("token"));
}
}
答案 1 :(得分:1)
如果你想将querydict转换成json,
你可以这样做,
>>> from django.http import QueryDict
>>> q = QueryDict('a=1&a=2&c=3')
>>> q
<QueryDict: {'c': ['3'], 'a': ['1', '2']}>
我实际上是这样做的,
>>> string_dict = json.loads(json.dumps(dict(q)))
>>> string_dict
{'c': ['3'], 'a': ['1', '2']}
>>> for item in string_dict:
... if len(string_dict[item]) == 1:
... string_dict[item] = string_dict[item][0]
...
>>> string_dict
{'c': '3', 'a': ['1', '2']}
答案 2 :(得分:1)
我同意你 不希望这样的评论。
无论如何,这种理解摆脱了unicode字符串(再次,你不应该想要这个)和单值列表:
d = { 'a': ['1', '2'], 'c': [u'3']}
>>> {k:(map(str, v) if len(v) > 1 else str(v[0])) for k,v in d.items()}
{'a': ['1', '2'], 'c': '3'}