繁体   English   中英

即使使用完全指定的文件路径,df.to_csv 也不会生成 CSV 文件

[英]df.to_csv is not generating a CSV file even with fully specified filepath

仍在努力学习Python。 作为学习练习,我尝试编写一个脚本来从 coinmarketcap.com 中提取过去 5 年的历史比特币数据。 我有它所以没有任何错误生成,但最后没有生成 CSV 文件。 我在别处阅读它可能会保存到另一个目录,但我可以看到工作目录是我正在查找的位置,并且我在该目录中的另一个脚本中使用了 df.to_csv 并且它正确保存了。

我正在通过 Anaconda Notebooks 使用 Spyder。 这是我的脚本:

from bs4 import BeautifulSoup
import requests
import pandas as pd
import json

coins = {}

for i in coins:
        page = requests.get('https://coinmarketcap.com/currencies/bitcoin/historical-data/?start=20150920&end=20200918')
        soup = BeautifulSoup(page.content, 'html.parser')
        data = soup.find('script', id="__NEXT_DATA__",type="application/json")
        historical_data = json.loads(data.contents[0]) 
        quotes = historical_data['props']['initialState']['cryptocurrency']['ohlcvHistorical']['i']['quotes']

        market_cap = []
        volume = []
        timestamp = []
        name = []
        symbol = []
        slug = []
    
        df = pd.DataFrame(columns = ['marketcap','volume','timestamp','name','symbol','slug'])
        for j in quotes:
            market_cap.append(j['quote']['USD']['market_cap'])
            volume.append(j['quote']['USD']['volume'])
            timestamp.append(j['quote']['USD']['timestamp'])
            name.append(info['name'])
            symbol.append(info['symbol'])
            slug.append(coins[i])
            df['marketcap'] = market_cap
            df['volume'] = volume
            df['timestamp'] = timestamp
            df['name'] = name
            df['symbol'] = symbol
            df['slug'] = slug
        df.to_csv('C:\\Python34\\Projects\\Trends\\btcvalue.csv', index=False)

你的第一个 for 循环永远不会运行,因为coins总是空的。 我建议将df.to_csv移出 for 循环。

[...] 

coins = {}

for i in coins:

[...]

        df['slug'] = slug
df.to_csv('C:\\Python34\\Projects\\Trends\\btcvalue.csv', index=False)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM