2016-08-21 11 views
0

jsonファイルをロードしてから、後で解析しようとしています。しかし、出力では、私は 'u'文字を取得し続ける。 問題を解決するencoding = 'utf-8'でファイルを開こうとしました。 私はpython 2.7を使用しています。出力の 'u'文字を無視して乗り越えるための単純なアプローチまたは回避策がありますか?Python出力でUnicode文字を取り除く方法は?

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

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

PS:私はこのポストSuppress the u'prefix indicating unicode' in python strings の谷行きましたが、それは、Python 2.7

+1

:[**なし**](http://stackoverflow.com/questions/761361/suppress-the-uprefix-indicating-unicode-in-python-strings)を参照してください。 – Jan

+0

なぜそれは問題ですか? –

+0

Unicodeはこの問題とは関係ありません。これは、文字列でいっぱいの辞書のPython( 'repr()')表現です。 JSONなどの別の形式で表現したい場合は、その形式のエンコーダーを使用します。 – bobince

答えて

2

使用json.dumpsのためのソリューションを持っていると変換するために、それをデコードしませんそれを文字列に変換する

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

@ cool77あなたの問題を解決したら答えを正解とマークしてください – Naruto

+1

私は解決策を試しました。助けになる。しかし、私はスクリプトの後半でjson.loadから辞書 'd'を使う必要があります。 json.dumpsを使って、後で辞書のように反復することができない文字列を取得する/ – cool77

+0

'd'辞書と' data'文字列の両方を保持し、必要なものを使います。 – bobince

0

u Unicode文字列です。あなたは、文字列を印刷する場合、それは表示されません。

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

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

出力:要するに

Status: In Progress... 
関連する問題