我希望从CSV文件中的3个单独列中读取字符串列表,并将字符串与URL连接起来,然后向URL发送请求,通过迭代CSV创建每个单独的URL,URL的响应将是我计划存储在新CSV文件中的JSON。到目前为止,我能够从CSV中读取数据,但我认为问题在于URL与列值的连接。我可以从CSV文件中读取数据,当我打印(URL)时,它会打印成功与CSV最后一行连接的URL,但在末尾添加“.0”。我无法理解):
import requests
import pandas as pd
import csv
import json
from urllib import response
#read cvs file select the columns you need with 'usecols='
df = pd.read_csv('~/Documents/top_10_nft.csv', usecols=['chain','contract_address' ,'token_id'],delimiter=',')
contract_address = df['contract_address']
chain = df['chain']
token_id = df['token_id']
df.dropna(subset=['chain','contract_address' ,'token_id'])
data = []
for index, row in df.iterrows():
chain = row['chain']
contract_address = row['contract_address']
token_id = row['token_id']
url = f"https://api.opensea.io/v2/chain/{chain}/contract/{contract_address}/nfts/{token_id}"
headers = {
"accept": "application/json",
"X-API-KEY": "d4f769dccc874df19ced833c630b3ea0"
}
print(url)
response = requests.get(url, headers=headers)
#data.append(response.json())
# drop all null rows using dropna(subset=[column-name])
df.dropna(subset=['chain','contract_address','token_id'])
#concatinate URL
#nft_data = data['nft']
#print(response)
我希望我的做法是正确的。这是打印“URL”的结果,最后的“34.0”应该是“34”,这就是为什么我认为我得到500错误。另外,屏幕截图中显示的这个URL是与我正在阅读的CSV数据的最后一行成功连接的结果,这样可以吗?还是跳过了上面的数据行
1条答案
按热度按时间sqougxex1#
这对我使用
csv
模块是有效的。忽略StringIO
位并使用正确的路径到您的 * 文件.csv*