Django 从查询结果中移除 Unicode
Django查询给我的输出格式是这样的,但我想要下面这种格式
data=`[{'total': 1744, 'name: u'x'}, {'total': 13, 'name': u'm'}, {'total': 126, 'role': name'n'}]`
m=[]
for i in data:
m.append(i.values())
打印m的时候,它给我的输出是
[[1744,u'x'], [13,u'm'], [126,u'n']]
但是我需要的输出是 怎么去掉输出中的unicode符号呢
[['x',1744], ['m',13], ['n',126]]
该怎么做呢?
提前谢谢你
4 个回答
0
使用 str()
函数。
>>> def byte_string(x):
... return str(x) if isinstance(x, unicode) else x
...
>>> [[byte_string(x) for x in row] for row in d]
[[1744, 'x'], [13, 'm'], [126, 'n']]
注意,如果你的数据包含非ASCII字符串,这段代码会出错。
0
你不能指望字典里的键会按照特定的顺序出现(比如在 i.values()
中的值的顺序),所以最好的办法是写成这样:
m = []
for i in date:
m.append([i['name'], i['total']])
注意:你应该遍历的是 date
,而不是 m
,因为在这个例子中 m
是空的。我在这里的代码中已经修正了这个问题。
4
试试这个:
>>> import json
>>> data=[{'total': 1744, 'name': u'x'}, {'total': 13, 'name': u'm'}, {'total': 126, 'name': u'n'}]
>>> json.dumps([i.values()[::-1] for i in data])
'[["x", 1744], ["m", 13], ["n", 126]]'
>>>