Pytrends - 从 google 趋势数据中获取多个字典列表
Pytrends - get a multiple lists of dicts from google trends data
我想要一个字典列表,如下所示:
[{'produkt': 'slava ukraina', 'kraj': 'Lithuania', 'trendy %': 100}, {'produkt': 'slava ukraina', 'kraj': 'Georgia', 'trendy %': 81}, {'produkt': 'slava ukraina', 'kraj': 'Estonia', 'trendy %': 71}, {'produkt': 'slava ukraina', 'kraj': 'Finland', 'trendy %': 21}, {'produkt': 'slava ukraina', 'kraj': 'Croatia', 'trendy %': 16}, {'produkt': 'slava ukraina', 'kraj': 'Azerbaijan', 'trendy %': 14}, {'produkt': 'slava ukraina', 'kraj': 'Poland', 'trendy %': 12}, {'produkt': 'slava ukraina', 'kraj': 'Norway', 'trendy %': 12}, {'produkt': 'slava ukraina', 'kraj': 'Latvia', 'trendy %': 12}, {'produkt': 'slava ukraina', 'kraj': 'Sweden', 'trendy %': 11}, {'produkt': 'slava ukraina', 'kraj': 'Romania', 'trendy %': 8}, {'produkt': 'slava ukraina', 'kraj': 'Denmark', 'trendy %': 4}, {'produkt': 'slava ukraina', 'kraj': 'Germany', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Austria', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Netherlands', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Portugal', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Switzerland', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'United Kingdom', 'trendy %': 2}, {'produkt': 'slava ukraina', 'kraj': 'Canada', 'trendy %': 2}, {'produkt': 'slava ukraina', 'kraj': 'Belgium', 'trendy %': 2}, {'produkt': 'slava ukraina', 'kraj': 'Turkey', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'Australia', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'Spain', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'Italy', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'France', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'United States', 'trendy %': 1}]
[{'produkt': 'glory to Ukraine', 'kraj': 'Georgia', 'trendy %': 100}, {'produkt': 'glory to Ukraine', 'kraj': 'Lithuania', 'trendy %': 10}, {'produkt': 'glory to Ukraine', 'kraj': 'Canada', 'trendy %': 8}, {'produkt': 'glory to Ukraine', 'kraj': 'Hong Kong', 'trendy %': 7}, {'produkt': 'glory to Ukraine', 'kraj': 'Ireland', 'trendy %': 7}, {'produkt': 'glory to Ukraine', 'kraj': 'United States', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'United Kingdom', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'Croatia', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'Ukraine', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'Sweden', 'trendy %': 4}, {'produkt': 'glory to Ukraine', 'kraj': 'Finland', 'trendy %': 4}, {'produkt': 'glory to Ukraine', 'kraj': 'New Zealand', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Singapore', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Portugal', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Norway', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Czechia', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Netherlands', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Austria', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Switzerland', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Denmark', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Australia', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Germany', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'South Africa', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'South Korea', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Romania', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Italy', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Poland', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Taiwan', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Turkey', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Philippines', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'United Arab Emirates', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Belgium', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Spain', 'trendy %': 1}]
当我只使用一个参数时,例如'slava ukraina',它工作得很好。下面的示例:
import pandas as pd
from pytrends.request import TrendReq
pytrend = TrendReq()
kw_list = ['slava ukraina']
pytrend.build_payload(kw_list=kw_list,timeframe='now 7-d')
df = pytrend.interest_by_region()
geosy_kw_list = df[df['slava ukraina'] > 0].sort_values('slava ukraina', ascending=False)
df_to_dict = geosy_kw_list.to_dict()
lista = []
for k,v in df_to_dict.items():
output_list = []
for c,w in v.items():
inner_dict = {}
inner_dict['produkt'] = k
inner_dict['kraj'] = c
inner_dict['trendy %'] = w
output_list.append(inner_dict)
lista.append(output_list)
list_flattened = [item for sublist in lista for item in sublist]
print(list_flattened)
但是有多个参数我卡住了。
我试过
import pandas as pd
from pytrends.request import TrendReq
def funk_main(*args):
pytrend = TrendReq()
for arg in args:
pytrend.build_payload(kw_list=arg,timeframe='now 7-d')
df = pytrend.interest_by_region()
geosy_kw_list = df[df[arg] > 0].sort_values(arg, ascending=False)
print(geosy_kw_list)
print(funk_main('slava ukraina','glory to Ukraine'))
但直到最后都没有完成因为
pytrend.build_payload(kw_list=arg,timeframe='now 7-d')
这里报错:
raise exceptions.ResponseError(
pytrends.exceptions.ResponseError: The request failed: Google returned a response with code 400.
好的,我猜不是
kw_list = arg
我应该使用
kw_list = [arg]
就是这样。问题已解决。
我想要一个字典列表,如下所示:
[{'produkt': 'slava ukraina', 'kraj': 'Lithuania', 'trendy %': 100}, {'produkt': 'slava ukraina', 'kraj': 'Georgia', 'trendy %': 81}, {'produkt': 'slava ukraina', 'kraj': 'Estonia', 'trendy %': 71}, {'produkt': 'slava ukraina', 'kraj': 'Finland', 'trendy %': 21}, {'produkt': 'slava ukraina', 'kraj': 'Croatia', 'trendy %': 16}, {'produkt': 'slava ukraina', 'kraj': 'Azerbaijan', 'trendy %': 14}, {'produkt': 'slava ukraina', 'kraj': 'Poland', 'trendy %': 12}, {'produkt': 'slava ukraina', 'kraj': 'Norway', 'trendy %': 12}, {'produkt': 'slava ukraina', 'kraj': 'Latvia', 'trendy %': 12}, {'produkt': 'slava ukraina', 'kraj': 'Sweden', 'trendy %': 11}, {'produkt': 'slava ukraina', 'kraj': 'Romania', 'trendy %': 8}, {'produkt': 'slava ukraina', 'kraj': 'Denmark', 'trendy %': 4}, {'produkt': 'slava ukraina', 'kraj': 'Germany', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Austria', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Netherlands', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Portugal', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'Switzerland', 'trendy %': 3}, {'produkt': 'slava ukraina', 'kraj': 'United Kingdom', 'trendy %': 2}, {'produkt': 'slava ukraina', 'kraj': 'Canada', 'trendy %': 2}, {'produkt': 'slava ukraina', 'kraj': 'Belgium', 'trendy %': 2}, {'produkt': 'slava ukraina', 'kraj': 'Turkey', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'Australia', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'Spain', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'Italy', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'France', 'trendy %': 1}, {'produkt': 'slava ukraina', 'kraj': 'United States', 'trendy %': 1}]
[{'produkt': 'glory to Ukraine', 'kraj': 'Georgia', 'trendy %': 100}, {'produkt': 'glory to Ukraine', 'kraj': 'Lithuania', 'trendy %': 10}, {'produkt': 'glory to Ukraine', 'kraj': 'Canada', 'trendy %': 8}, {'produkt': 'glory to Ukraine', 'kraj': 'Hong Kong', 'trendy %': 7}, {'produkt': 'glory to Ukraine', 'kraj': 'Ireland', 'trendy %': 7}, {'produkt': 'glory to Ukraine', 'kraj': 'United States', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'United Kingdom', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'Croatia', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'Ukraine', 'trendy %': 5}, {'produkt': 'glory to Ukraine', 'kraj': 'Sweden', 'trendy %': 4}, {'produkt': 'glory to Ukraine', 'kraj': 'Finland', 'trendy %': 4}, {'produkt': 'glory to Ukraine', 'kraj': 'New Zealand', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Singapore', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Portugal', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Norway', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Czechia', 'trendy %': 3}, {'produkt': 'glory to Ukraine', 'kraj': 'Netherlands', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Austria', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Switzerland', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Denmark', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Australia', 'trendy %': 2}, {'produkt': 'glory to Ukraine', 'kraj': 'Germany', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'South Africa', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'South Korea', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Romania', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Italy', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Poland', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Taiwan', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Turkey', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Philippines', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'United Arab Emirates', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Belgium', 'trendy %': 1}, {'produkt': 'glory to Ukraine', 'kraj': 'Spain', 'trendy %': 1}]
当我只使用一个参数时,例如'slava ukraina',它工作得很好。下面的示例:
import pandas as pd
from pytrends.request import TrendReq
pytrend = TrendReq()
kw_list = ['slava ukraina']
pytrend.build_payload(kw_list=kw_list,timeframe='now 7-d')
df = pytrend.interest_by_region()
geosy_kw_list = df[df['slava ukraina'] > 0].sort_values('slava ukraina', ascending=False)
df_to_dict = geosy_kw_list.to_dict()
lista = []
for k,v in df_to_dict.items():
output_list = []
for c,w in v.items():
inner_dict = {}
inner_dict['produkt'] = k
inner_dict['kraj'] = c
inner_dict['trendy %'] = w
output_list.append(inner_dict)
lista.append(output_list)
list_flattened = [item for sublist in lista for item in sublist]
print(list_flattened)
但是有多个参数我卡住了。
我试过
import pandas as pd
from pytrends.request import TrendReq
def funk_main(*args):
pytrend = TrendReq()
for arg in args:
pytrend.build_payload(kw_list=arg,timeframe='now 7-d')
df = pytrend.interest_by_region()
geosy_kw_list = df[df[arg] > 0].sort_values(arg, ascending=False)
print(geosy_kw_list)
print(funk_main('slava ukraina','glory to Ukraine'))
但直到最后都没有完成因为
pytrend.build_payload(kw_list=arg,timeframe='now 7-d')
这里报错:
raise exceptions.ResponseError(
pytrends.exceptions.ResponseError: The request failed: Google returned a response with code 400.
好的,我猜不是
kw_list = arg
我应该使用
kw_list = [arg]
就是这样。问题已解决。