我有一个csv作为输入,它的行值我想加入到一个新的字段中。这个新字段是一个构造的url,然后由请求.post()方法。在
我正确地构造了我的url,但是我的问题是应该传递给请求的数据对象。当我的字典无序时,如何将正确的值传递给它们的正确键?如果我需要使用一个有序的dict,如何正确地设置它与我的当前格式?在
以下是我所拥有的:
import pandas as pd
import numpy as np
import requests
test_df = pd.read_csv('frame1.csv')
headers = {'content-type': 'application/x-www-form-urlencoded'}
test_df['FIRST_NAME'] = test_df['FIRST_NAME'].astype(str)
test_df['LAST_NAME'] = test_df['LAST_NAME'].astype(str)
test_df['ADDRESS_1'] = test_df['ADDRESS_1'].astype(str)
test_df['CITY'] = test_df['CITY'].astype(str)
test_df['req'] = 'site-url.com?' + '&FIRST_NAME=' + test_df['FIRST_NAME'] + '&LAST_NAME=' + \
test_df['LAST_NAME'] + '&ADDRESS_1=' + test_df['ADDRESS_1'] + '&CITY=' + test_df['CITY']
arr = test_df.values
d = {'FIRST_NAME':test_df['FIRST_NAME'], 'LAST_NAME':test_df['LAST_NAME'],
'ADDRESS_1':test_df['ADDRESS_1'], 'CITY':test_df['CITY']}
test_df = pd.DataFrame(arr[0:, 0:], columns=d, dtype=np.str)
data = test_df.to_dict()
data = {k: v for k, v in data.items()}
test_df['raw_result'] = test_df['req'].apply(lambda x: requests.post(x, headers=headers,
data=data).content)
test_df.to_csv('frame1_result.csv')
我试图用dict理解将值映射到键,但是像FIRST_NAME
这样的键的赋值可能最终映射到来自test_df['CITY']
这样的任意字段的值。在
不确定我是否正确地理解了这个问题。但是,您可以给
to_dict
函数提供参数,例如它将给出如下输出:
[{'FIRST_NAME': ..., 'LAST_NAME': ...}, {'FIRST_NAME': ..., 'LAST_NAME': ...}]
(这将给您一个长度与test_df
)相等的列表。这可能是一种很容易将其映射到正确行的可能性。在相关问题 更多 >
编程相关推荐