2016-08-19 58 views
-1

我有,我把与to_dict字典3个不同的列的大熊猫文件,结果是字典列表:叠代类型的字典的列表来创建不同的字符串

df = [ 
{'HEADER1': 'col1-row1', 'HEADER2: 'col2-row1', 'HEADER3': 'col3-row1'}, 
{'HEADER1': 'col1-row2', 'HEADER2: 'col2-row2', 'HEADER3': 'col3-row2'} 
] 

现在我的问题是,我需要'col2-rowX'和'col3-rowX'的值来构建一个URL并使用请求和bs4来抓取网页。

我需要的结果是类似以下内容:

requests.get("'http://www.website.com/' + row1-col2 + 'another-string' + row1-col3 + 'another-string'") 

,我需要做的是对列表中的每个词典。

我已经尝试迭代使用for-loops的字典。 类似:

import pandas as pd 
import os 

os.chdir('C://Users/myuser/Desktop') 

df = pd.DataFrame.from_csv('C://Users/myuser/Downloads/export.csv') 

#Remove 'Code' column 
df = df.drop('Code', axis=1) 

#Remove 'Code2' as index 
df = df.reset_index() 

#Rename columns for easier manipulation 
df.columns = ['CB', 'FC', 'PO'] 

#Convert to dictionary for easy URL iteration and creation 
df = df.to_dict('records') 

for row in df: 
    for key in row: 
     print(key) 
+1

如果你'返回'键,你的功能将退出 –

+0

你不能有一个函数返回。请提供完整的代码(即使不按预期工作)。 – Anthon

+0

我编辑的帖子包括我有的代码。谁低估了我:对不起没有专家,这就是为什么我在这里 – nachomasterCR

回答

1

你永远只能重复两次,短路每它是由具有有一个return语句执行时间嵌套for循环。从字典中查找必要的信息将允许你建立你的网址。一个可能的例子:

def get_urls(l_d): 
    l=[] 
    for d in l_d: 
     l.append('http://www.website.com/' + d['HEADER2'] + 'another-string' + d['HEADER3'] + 'another-string') 
    return l 

df = [{'HEADER1': 'col1-row1', 'HEADER2': 'col2-row1', 'HEADER3': 'col3-row1'},{'HEADER1': 'col1-row2', 'HEADER2': 'col2-row2', 'HEADER3': 'col3-row2'}] 
print get_urls(df) 
>>> ['http://www.website.com/col2-row1another-stringcol3-row1another-string', 'http://www.website.com/col2-row2another-stringcol3-row2another-string'] 
相关问题