如何在python输出中去掉unicode字符?

如何在python输出中去掉unicode字符?,python,json,unicode,Python,Json,Unicode,我正在尝试加载一个json文件,然后稍后尝试解析它。 但是,在输出中,我不断得到“u”字符。 我试图用encoding='utf-8'打开该文件,但无法解决问题。 我正在使用python 2.7。是否有一种直接的方法或解决方法可以忽略并利用输出中的“u”字符 import json import io with io.open('/tmp/install-report.json', encoding='utf-8') as json_data: d = json.load(json_

我正在尝试加载一个json文件,然后稍后尝试解析它。 但是,在输出中,我不断得到“u”字符。 我试图用encoding='utf-8'打开该文件,但无法解决问题。 我正在使用python 2.7。是否有一种直接的方法或解决方法可以忽略并利用输出中的“u”字符

import json
import io


with io.open('/tmp/install-report.json', encoding='utf-8') as json_data:
    d = json.load(json_data)
    print d
o/p

p、 s:我看完了这篇文章
但是,对于Python2.7来说,这并没有一个解决方案。请使用json.dumps并对其进行解码以将其转换为字符串

data = json.dumps(d, ensure_ascii=False).decode('utf8')
print data

使用json.dumps并对其进行解码以将其转换为字符串

data = json.dumps(d, ensure_ascii=False).decode('utf8')
print data

u
仅表示Unicode字符串。如果打印字符串,则不会显示:

d = {u'install': {u'Status': u'In Progress...', u'StartedAt': 1471772544}}

print 'Status:',d[u'install'][u'Status']
输出:

Status: In Progress...

u
仅表示Unicode字符串。如果打印字符串,则不会显示:

d = {u'install': {u'Status': u'In Progress...', u'StartedAt': 1471772544}}

print 'Status:',d[u'install'][u'Status']
输出:

Status: In Progress...

简而言之:。为什么会有问题?Unicode与问题无关。这是一个满是字符串的字典的Python(
repr()
)表示形式。如果您想要另一种格式(如JSON)的表示,那么请使用该格式的编码器。@Padraiccanningham这是一个问题,因为这需要显示给最终用户,他们可能对这些“字符”感到不舒服@cool77,但您已经假设最终用户对python
repr
输出感到满意了?首先,你期望什么样的产出?时间戳看起来对最终用户也不友好。简言之:。为什么会有问题?Unicode与此问题无关。这是一个满是字符串的字典的Python(
repr()
)表示形式。如果您想要另一种格式(如JSON)的表示,那么请使用该格式的编码器。@Padraiccanningham这是一个问题,因为这需要显示给最终用户,他们可能对这些“字符”感到不舒服@cool77,但您已经假设最终用户对python
repr
输出感到满意了?首先,你期望什么样的产出?时间戳看起来对最终用户也不友好。@cool77如果解决了您的问题,请将答案标记为正确。我尝试了解决方案。这很有帮助。但是我需要在脚本后面使用json.load中的字典“d”。通过使用json.dumps,我得到了一个字符串,以后无法像在字典中那样迭代,因此保留
d
字典和
data
字符串,并使用您需要的任何字符串。@cool77如果解决了您的问题,请将答案标记为正确。我尝试了解决方案。这很有帮助。但是我需要在脚本后面使用json.load中的字典“d”。通过使用json.dumps,我得到了一个字符串,以后无法像在字典中那样迭代,因此保留
d
字典和
data
字符串,并使用您需要的字符串。