django从查询结果中删除unicode

时间:2011-03-10 17:06:41

标签: python django django-models django-views

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 :(得分: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]]'
>>> 

答案 1 :(得分:0)

你不能依赖字典中的键的顺序(例如i.values()中的值的顺序),所以你最好的选择就是这样写:

m = []
for i in date:
    m.append([i['name'], i['total']])

注意:你也想要迭代date,而不是m,在这个例子中它将是空的。在我的代码中进行了更正。

答案 2 :(得分: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字符串,此代码将会爆炸。

答案 3 :(得分:0)

我使用str(jsonVal)来解决这个问题。删除了使用后期处理的要求。