写入unicode Pythofi N2.csv字典

2024-05-19 09:48:34 发布

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

我有一本从中文网站上搜来的词典。全部用unicode处理。现在我想把数据写入csv文件。第一行包含所有数字键()第二行包含所有dict.值()

如何将此词典写入csv?具体来说,我需要所有的汉字显示在csv。我很难转换它们。在

提前谢谢你

    data = {u'\u6ce8\u518c\u8d44\u672c': u'6500\u4e07\u5143\u4eba\u6c11\u5e01[8]', u'\u7ecf\u8425\u8303\u56f4': u'\u4e92\u8054\u7f51', u'\u5b98\u7f51': u'http://www.tencent.com/', u'\u6210\u7acb\u65f6\u95f4': u'1998\u5e7411\u670811\u65e5[8]', u'\u6ce8\u518c\u53f7': u'440301103448669[8]', u'\u5e74\u8425\u4e1a\u989d': u'1028.63\u4ebf\u5143\u4eba\u6c11\u5e01\uff082015\u5e74\uff09[9]', u'\u521b\u59cb\u4eba': u'\u9a6c\u5316\u817e\u5f20\u5fd7\u4e1c\u8bb8\u6668\u6654\u9648\u4e00\u4e39\u66fe\u674e\u9752[10]', u'\u603b\u90e8\u5730\u70b9': u'\u4e2d\u56fd\u6df1\u5733', u'\u603b\u88c1': u'\u5218\u70bd\u5e73', u'\u6ce8\u518c\u5730': u'\u6df1\u5733', u'\u5916\u6587\u540d\u79f0': u'Tencent', u'\u8463\u4e8b\u5c40\u4e3b\u5e2d': u'\u9a6c\u5316\u817e', u'\u5458\u5de5\u6570': u'2.5\u4e07\u4f59\u4eba\uff082014\u5e74\uff09', u'\u516c\u53f8\u6027\u8d28': u'\u6709\u9650\u8d23\u4efb\u516c\u53f8[8]', u'\u516c\u53f8\u53e3\u53f7': u'\u4e00\u5207\u4ee5\u7528\u6237\u4ef7\u503c\u4e3a\u4f9d\u5f52', u'\u4f01\u4e1a\u613f\u666f': u'\u6700\u53d7\u5c0a\u656c\u7684\u4e92\u8054\u7f51\u4f01\u4e1a', u'\u516c\u53f8\u4f7f\u547d': u'\u901a\u8fc7\u4e92\u8054\u7f51\u670d\u52a1\u63d0\u5347\u4eba\u7c7b\u751f\u6d3b\u54c1\u8d28', u'\u6cd5\u5b9a\u4ee3\u8868\u4eba': u'\u9a6c\u5316\u817e', u'\u767b\u8bb0\u673a\u5173': u'\u6df1\u5733\u5e02\u5e02\u573a\u76d1\u7763\u7ba1\u7406\u5c40\u5357\u5c71\u5c40[8]', u'\u516c\u53f8\u540d\u79f0': u'\u6df1\u5733\u5e02\u817e\u8baf\u8ba1\u7b97\u673a\u7cfb\u7edf\u6709\u9650\u516c\u53f8[8]'}

Tags: csvu7f51u4ebau516cu5e74u6ce8u5733u6df1
3条回答

尝试使用codecs模块。在

import codecs
with codecs.open(filename, "w", "utf-8") as f:
    for key, value in data.iteritems():
        f.write(key+','+value+'\n')

这应该是设计好的行为

“utf-8”编码解决了这个问题。将字典转换为csv文件的一种方法是pandas库。它可以很容易地解决问题。在

import pandas as pd

df = pd.DataFrame.from_dict(data, orient='index')
df.to_csv('output.csv', encoding='utf-8', header=None)

如果您使用本机使用Unicode的Python3,这将是微不足道的:

import csv

with open("file.csv", "w", newline='', encoding='utf8') as fd:
    dw = DictWriter(fd, data.keys()
    dw.writeheader()
    dw.writerow(data)

当您在unicode字符串前面加上u前缀时,我假设您使用Python2。csv模块在处理csv文件时非常棒,但是Python2版本并不能以本机方式处理Unicode字符串。要处理unicode dict,只需将其键和值编码为utf8:

^{pr2}$

相关问题 更多 >

    热门问题