簡體   English   中英

Python 將 unicode 添加到文件中

[英]Python adds unicode to file

我正在將默認字典(列表)寫入文件:

def write_to_file(slack_dict):
    if os.path.exists("slack_dict"):
        print ("slack_dict file already exist, skipping writing")
    else:
        print ("writing slack_dict to file")
        F = open('slack_dict', "w")
        F.write(str(slack_dict).encode('UTF-8'))
        F.close()

寫入文件的 slack_dict 是:

defaultdict(<type 'list'>, {u'djin_acontentmgmt_sample': [{'color': u'blue', 
    'status': 'SUCCESS', 'region': u'virginia', 'env': u'int', 'job_no': '122'}]})

如何刪除 unicode 字符串? 我已經嘗試過F.write(str(slack_dict).encode('UTF-8'))

如果我執行以下操作,則 'slack_dict' 文件中沒有非 ASCII 字符,因為字典中的任何 'Unicode' 字符串中都沒有非 ASCII 字符。 一切都完全按照所示存儲(例如,文字“u”,而不是非 ASCII 字符)。

from collections import defaultdict
slack_dict = defaultdict(list)
slack_dict[u'djin_acontentmgmt_sample'] = [
    {'color': u'blue', 'status': 'SUCCESS', 'region': u'virginia', 'env': u'int', 'job_no': '122'}
]
with open('slack_dict', 'w') as f:
    f.write(str(slack_dict).encode('UTF-8'))

with open('slack_dict', 'r') as f:
    print f.read()

# defaultdict(<type 'list'>, {u'djin_acontentmgmt_sample': [{'color': u'blue', 'status': 'SUCCESS', 'region': u'virginia', 'env': u'int', 'job_no': '122'}]})

您是否試圖消除“u”標記,例如,編寫 json 文本? 在這種情況下,你可以試試這個:

import json
with open('slack_dict', 'w') as f:
    json.dump(slack_dict, f)
    # equivalent to f.write(json.dumps(slack_dict))

with open('slack_dict', 'r') as f:
    print f.read()

# {"djin_acontentmgmt_sample": [{"color": "blue", "status": "SUCCESS", "region": "virginia", "env": "int", "job_no": "122"}]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM