从 CSV 中读取特定的列值并将其作为 Python 中的参数传递给 urllib
Reading specific Column Values from CSV and pass it to urllib as parameter in Python
我是 python 的新手,正在尝试从 CSV 中读取特定列 file.I 现在正在编辑问题。
这是 CSV 文件,例如:
one two three four
1 3 5 7
2 3 5 7
我写了一个非常简单的 Python 程序:(感谢下面的 Amrit 修改模式)。
import csv
with open('Activity_PSR.csv','rU') as csvFile:
reader=csv.reader(csvFile,delimiter=',')
for row in reader:
print row[6]
csvFile.close()
我正在获取包含列 header.I 的特定列,只希望输出没有列 header 的元素。
获得此列的输出后,我想将其存储在一个变量中,并在 CURL 命令中使用它来获取 POST 数据。我相信 CURL 命令等同于 urlib。
这是 CURL POST 命令:
curl -v -X POST -d ‘{“Organization_Id___ORACO__Account_Order":300100051155060,"}' slcaf961.us.oracle.com:10615/crmCommonApi/resources/11.1.10/__ORACO__Order_c
-H "Content-Type:application/vnd.oracle.adf.resourceitem+json" --user “sales_representative”
以及我打算使用的 urllib 代码:
import urllib2
data = '{“Organization_Id___ORACO__Account_Order":300100051155060"}'
url = 'slcad745.us.oracle.com:10618/crmCommonApi/resources/11.1.10/__ORACO__Order_c'
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
for x in f:
print(x)
f.close()
在此处的数据字段中,我不想直接传递 300100051155060,而是想使用从上面的 CSV 中获得的值并将其作为 Account-Id.
传递
如何将从 CSV 中获取的值作为参数传递给 JSON 负载?
需要存储我从CSV中得到的值,并存储在一个Variable中,作为参数传递给JSONpayload/data并执行POST方法。
请求人们帮助我如何实现上述场景
这意味着一行在索引 2 上没有列。您需要创建一个守卫:
for row in csv_f:
# make sure row has value on column 2 - otherwise skip row
if len(row) > 2:
print row[2]
您也可以使用例外,在 Python 中被认为是便宜的:
for row in csv_f:
try:
print row[2]
except IndexError:
print("skipping row %s" % str(row))
如果您知道所有行都需要有一个值,请确保您使用正确的分隔符使用 reader 的 delimiter
参数]的构造函数。
此外,请确保在 循环后 关闭文件:
for row in csv_f:
# do stuff with 'row'
csv_f.close()
您应该考虑与 pandas. It has a function called read_csv
一起工作 非常。在您的情况下,打印第三列的代码是
from pandas import *
csv_f=read_csv('test.csv', sep=r"\s*")
for a in csv_f['three']:
print a
当然,它有很多功能,您应该检查一下,看看是否可以使用。
改用此代码:
import csv
with open('test.csv','r') as csvFile:
reader=csv.reader(csvFile,delimiter=',')
reader.next() # if you don't want to print columns headers
for row in reader:
print row[2]
csvFile.close()
我是 python 的新手,正在尝试从 CSV 中读取特定列 file.I 现在正在编辑问题。
这是 CSV 文件,例如:
one two three four
1 3 5 7
2 3 5 7
我写了一个非常简单的 Python 程序:(感谢下面的 Amrit 修改模式)。
import csv
with open('Activity_PSR.csv','rU') as csvFile:
reader=csv.reader(csvFile,delimiter=',')
for row in reader:
print row[6]
csvFile.close()
我正在获取包含列 header.I 的特定列,只希望输出没有列 header 的元素。
获得此列的输出后,我想将其存储在一个变量中,并在 CURL 命令中使用它来获取 POST 数据。我相信 CURL 命令等同于 urlib。
这是 CURL POST 命令:
curl -v -X POST -d ‘{“Organization_Id___ORACO__Account_Order":300100051155060,"}' slcaf961.us.oracle.com:10615/crmCommonApi/resources/11.1.10/__ORACO__Order_c
-H "Content-Type:application/vnd.oracle.adf.resourceitem+json" --user “sales_representative”
以及我打算使用的 urllib 代码:
import urllib2
data = '{“Organization_Id___ORACO__Account_Order":300100051155060"}'
url = 'slcad745.us.oracle.com:10618/crmCommonApi/resources/11.1.10/__ORACO__Order_c'
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
for x in f:
print(x)
f.close()
在此处的数据字段中,我不想直接传递 300100051155060,而是想使用从上面的 CSV 中获得的值并将其作为 Account-Id.
传递如何将从 CSV 中获取的值作为参数传递给 JSON 负载? 需要存储我从CSV中得到的值,并存储在一个Variable中,作为参数传递给JSONpayload/data并执行POST方法。 请求人们帮助我如何实现上述场景
这意味着一行在索引 2 上没有列。您需要创建一个守卫:
for row in csv_f:
# make sure row has value on column 2 - otherwise skip row
if len(row) > 2:
print row[2]
您也可以使用例外,在 Python 中被认为是便宜的:
for row in csv_f:
try:
print row[2]
except IndexError:
print("skipping row %s" % str(row))
如果您知道所有行都需要有一个值,请确保您使用正确的分隔符使用 reader 的 delimiter
参数]的构造函数。
此外,请确保在 循环后 关闭文件:
for row in csv_f:
# do stuff with 'row'
csv_f.close()
您应该考虑与 pandas. It has a function called read_csv
一起工作 非常。在您的情况下,打印第三列的代码是
from pandas import *
csv_f=read_csv('test.csv', sep=r"\s*")
for a in csv_f['three']:
print a
当然,它有很多功能,您应该检查一下,看看是否可以使用。
改用此代码:
import csv
with open('test.csv','r') as csvFile:
reader=csv.reader(csvFile,delimiter=',')
reader.next() # if you don't want to print columns headers
for row in reader:
print row[2]
csvFile.close()