django从查询结果中删除unicode

发布于 2024-10-21 21:10:29 字数 416 浏览 1 评论 0原文

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())

print m 它给了我输出

[[1744,u'x'], [13,u'm'], [126,u'n']]

,但我需要输出 如何从输出中删除 unicode 符号

[['x',1744], ['m',13], ['n',126]]

如何做到这一点?

提前致谢

Django query gives me below output format,but i want below format

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())

print m
it give me output

[[1744,u'x'], [13,u'm'], [126,u'n']]

but i need output in
how to remove unicode symbol from output

[['x',1744], ['m',13], ['n',126]]

how to do this ?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

醉殇 2024-10-28 21:10:29

试试这个:

>>> 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]]'
>>> 

Try this:

>>> 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]]'
>>> 
过气美图社 2024-10-28 21:10:29

您不能依赖键从字典中出现的顺序(例如 i.values() 中值的顺序),因此您最好的选择是编写如下内容:

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

注意:您还意味着要迭代 date,而不是 m,在本例中它为空。在这里更正我的代码。

You can't rely on the order in which keys will come out of a dictionary (e.g. the order of the values in i.values()), so your best bet is to write something like this:

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

NB: you also mean to be iterating date, not m, which would be empty in this example. Corrected in my code here.

饭团 2024-10-28 21:10:29

使用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 字符串,此代码将会崩溃。

Use 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']]

Note that this code will bomb if you data contains non-ascii string.

一曲爱恨情仇 2024-10-28 21:10:29

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

I used str(jsonVal) to solve this issue. Removed the requirement to use post processing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文