将UTF8值作为原始字符而不是其代码打印

2024-10-08 21:25:04 发布

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

看看这个代码:

a = {'name': u'احسان', 'family': u'شیرزادی'}
print a

如你所见,我用UTF-8字符填充了“name”和“family”。但当我打印一张照片时,结果是:

{'name': u'\u0627\u062d\u0633\u0627\u0646', 'family': u'\u0634\u06cc\u0631\u0632\u0627\u062f\u06cc'}

如何强制打印存储在变量中的数据?你知道吗


Tags: 代码name字符family照片utfprintu0627
2条回答

如果将dict转换为str(就像print在内部所做的那样),它会在键和值上使用repr,以便打印unicode码点而不是实际字符。您可以通过单独打印值来解决此问题,例如

for key, value in a.iteritems():
    print(u"{}: {}".format(key, value))

给予

name: احسان
family: شیرزادی

或者-如果希望输出的格式与print a相同-使用join

print u"{" + ", ".join(u"{}: {}".format(key, value) for key, value in a.iteritems()) + "}"

给予

{name: احسان, family: شیرزادی}

请注意,这会删除字符串周围的引号(只要只用于打印,就可以)。你知道吗

# -*- coding: utf-8 -*-
import sys
a = {'name': u'احسان', 'family': u'شیرزادی'}
for key in a:
    val = a[key].strip().encode('utf-8')
    print key, val

输出

name احسان
family شیرزادی

相关问题 更多 >

    热门问题