Python 将 url 解析为字典:重复键

Python parsing url into dict: duplicate keys

我有一个由 id 和 urls 组成的原始文本数据文件。然后我想将 url 解析为 Python 字典,然后转换为 pandas 数据帧,以便我可以分析某些 url 元素。

问题是某些元素是重复的。例如,url 可能读作 /browse/?item_type=15&color=336&color=45。注意 color= 出现了两次。然后,如果我使用 urllib.parse.parse_qs 来解析 url,生成的字典将包含键值对 'color' - ['336','45'],值是一个列表。因此,当我尝试将解析的行连接到 url 元素的现有数据帧时会抛出错误:

ValueError: arrays must all be same length

new_df = DataFrame.from_dict(urllib.parse.parse_qs(df1['url'][1]), orient='columns', dtype=None)
new_df['id'] = df1['id'][1]
for i in range(2,35):
    add_df = DataFrame.from_dict(urllib.parse.parse_qs(df1['url'][i]), orient='columns', dtype=None)
    add_df['id'] = df1['id'][i]
    new_df = pd.concat([new_df, add_df])

我的问题是:如何绕过这个问题?在这一点上,如果有两种颜色,我愿意只接受一种颜色到我的数据框中—— url 包含两种颜色的情况很少。

{k: [v[0]] for k, v in parse_qs('item_type=15&color=336&color=45').items()}

这将消除任何重复项