在我进入细节之前,请注意我不是一个程序员。只是学习python并开始掌握一些东西。现在来谈谈眼前的问题:
我修改了一个autocomplete string generator来为一个问题添加一系列术语。它似乎几乎是工作,但我挂了一些格式问题,在输出文件。你知道吗
下面是经过调整的代码(这是一个过度的杀伤力,但我希望在改进它之前让它工作起来)。你知道吗
import urllib, urllib2
import json
import time
import codecs
inFile = 'keywordFile.txt'
sep = ','
keywordField = 'keyword'
outFile = 'autoCompFile.txt'
google_endpoint = 'http://google.com/complete/search?output=firefox&q='
def find_index(fieldname, inFile):
with open(inFile, 'r') as f:
header = f.readline().rstrip().split(sep)
i = 0
for i in range(0, len(header)):
if header[i] == fieldname:
return i
break
else:
return -1
def build_phrase(keyword):
phrase = u'why did'
return u'%s %s' % (phrase, keyword)
def query_google(phrase):
url = '%s%s' % (google_endpoint, urllib.quote_plus(phrase))
data = urllib2.urlopen(url)
data = json.load(data)
results = [result.replace(phrase.lower(), '') for result in data[1]]
return results
kwIndex = find_index(keywordField, inFile)
with codecs.open(inFile, 'r', 'utf-8') as f:
with codecs.open(outFile, 'w', 'utf-8') as f_out:
f_out.write('keyword, autocomplete phrase\n')
data = f.readlines()
for record in data[1:]:
time.sleep(0.3)
record = record.rstrip()
items = record.split(sep)
kw = items[kwIndex]
phrase = build_phrase(kw)
results = query_google(phrase)
if len(results) > 0:
for result in results:
f_out.write('%s, %s, %s\n' % (kw, phrase, result))
else:
f_out.write('%s, %s\n' % (kw, phrase))
如果“result”包含构建短语的确切措辞,则代码中的某些内容会导致它被截断。输出示例:
理想情况下,我想得到关键字和一个完整的结果字符串没有任何形式的截断。所以我希望这两个案子都是这样的:
提前谢谢!你知道吗
看起来你正在从结果中删除短语。所以你的代码就是按照你写的那样做的。。。你知道吗
删除此行:
相关问题 更多 >
编程相关推荐