【发布时间】:2014-06-23 19:21:51
【问题描述】:
我有一个带有几个键的 json 文件。我想使用其中一个键并将该字符串写入文件。该字符串最初是 unicode。所以,我愿意,s.unicode('utf-8')
现在,该 json 中有另一个键,我将其写入另一个文件(这是一项机器学习任务,正在将原始字符串写入一个,将特征写入另一个)。问题是,最后,带有 unicode 字符串的文件有更多的行数(当使用“wc -l”计算时),这误导了我的工具,它崩溃说大小不一样。
参考代码:
for line in input_file:
j = json.loads(line)
text = j['text']
label = j[t]
output_file.write(str(label) + '\t' + text.encode('utf-8') + '\n')
norm_file.write(j['normalized'].encode('utf-8') + '\n')
使用“wc -l”时的区别
16862965
这是我期望的行数,我得到的是
16878681
实际上更高。所以我写了一个脚本来看看实际上有多少输出标签
with open(sys.argv[1]) as input_file:
for line in input_file:
p = line.split('\t')
if p[0] not in ("good", "bad"):
print p
else:
c += 1
print c
而且,你瞧,我有16862965 行,这意味着有些是错误的。我把它们打印出来,我得到一堆空的换行符('\n')。所以我想我的问题是,“在处理这样的 unicode 时我错过了什么?”
我应该去掉所有前导和尾随空格(不是字符串中有任何空格)
【问题讨论】: