【发布时间】:2020-04-28 15:06:06
【问题描述】:
我正在尝试从数据框构建一个字符串,然后我将使用 pytrends 将其提交到 Google 趋势。
字符串的构造似乎工作正常,但是当我将它传递到 pytrends 时,它被拒绝并显示“ResponseError:请求失败:Google 返回了代码为 400 的响应。”错误。
如果我手动构造等效字符串,它可以正常工作。
所以,问题在于数据框生成的字符串...除了当我打印手动构造的和数据框生成的字符串时,它们看起来相同...但是当我使用 == 进行比较时,它说它们不是相同的。
这是打印字符串和比较的输出:
['hotels Tokyo', 'hotels Yerevan', 'hotels Niamey', 'hotels Tegucigalpa', 'hotels Ashgabat']
['hotels Tokyo', 'hotels Yerevan', 'hotels Niamey', 'hotels Tegucigalpa', 'hotels Ashgabat']
错误
这是设置为仅使用上述最后一行数据查询 GTrends 的代码:
import pandas as pd
from pytrends.request import TrendReq
language = 'en-US'
pytrend = TrendReq(hl=language,tz=360,retries=10, backoff_factor=0.5)
gtrends_list_df = pd.read_csv('/app/jupyter_checkpoints/phil2/gt_full_splitty_sq_list2.csv')
for row in gtrends_list_df.itertuples(index=False):
gtrends_kw_list = "['" + row[0] + "', '" + row[1] + "', '" + row[2] + "', '" + row[3] + "', '" + row[4] +"']"
;
kw_list = ['hotels Tokyo', 'hotels Yerevan', 'hotels Niamey', 'hotels Tegucigalpa', 'hotels Ashgabat']
cat = 0
geo = ''
timeframe = '2019-02-01 2020-04-29'
print(kw_list)
print(gtrends_kw_list)
print(kw_list == gtrends_kw_list)
pytrend.build_payload(gtrends_kw_list, cat=cat, timeframe=timeframe, geo=geo, gprop='' )
int_over_time_df = pytrend.interest_over_time()
int_over_time_df
【问题讨论】:
标签: python-3.x string dataframe