在notepad++和Python中缩进时使用制表符和空格不一致

6

我添加了一行代码后出现了“缩进中制表符和空格的使用不一致”错误,但我看不出为什么会出现这个错误,以下是代码:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) #create authentcation handler

auth.set_access_token(access_token, access_secret) #set access tokens to connect to twitter dev account

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True) #consume tweepy api function, 

tweets = api.user_timeline('realDonaldTrump', count=30) 

tweets_list = []
for each_tweet in tweets:
    tweets_list.append(each_tweet._json)
with open('tweets.csv', 'a') as file:
        file.write(json.dumps(tweets_list, indent=4))

my_demo_list = []
with open('tweets.csv', encoding='utf-8') as csvFile:  
    all_data = json.load(csvFile)
    for json_tweet_data in all_data:
        tweet_id = json_tweet_data['id']
        text = json_tweet_data['text']
        favorite_count = json_tweet_data['favorite_count']
        retweet_count = json_tweet_data['retweet_count']
        created_at = json_tweet_data['created_at']
        #lang= json_tweet_data['lang']
        my_demo_list.append({'tweet_id': str(tweet_id),
                             'text': str(text),
                             'favorite_count': int(favorite_count),
                             'retweet_count': int(retweet_count),
                             'created_at': created_at,
                             'lang':str(lang)
                            })
        print(my_demo_list)
        tweet_json = pd.DataFrame(my_demo_list, columns = 
                                  ['tweet_id', 'text', 
                                   'favorite_count', 'retweet_count', 
                                   'created_at','language'])        
print(tweet_json)

#lang = json_tweet_data ['lang'] 这一行出现了错误,如果我将它移除或像代码中所示注释掉,那么它就可以正常工作。我认为每个缩进都很好,这里可能是什么问题?


1
它是不一致的,请看下面这行代码 with open('tweets.csv', 'a') as file:... - l'L'l
2个回答

20

这意味着你在某些地方用空格缩进代码,在其他地方则使用制表符。为了解决这个问题,在Notepad++中,转到编辑 -> 空白操作 -> 制表符转换为空格(PEP 8建议使用空格而不是制表符)。


0
为了确保Python脚本中的间距,您可以使用一些复杂的文本编辑器。我建议您使用Sublime Text 3或Atom,这样您下次就可以轻松处理它。

谢谢您的建议,我会查看这些编辑器。 - Charlie Ansell
我一直更喜欢Visual Studio(个人/教育/开源免费IDE)或Visual Studio Code(适用于所有用途的免费文本编辑器)。VS Code是基于Atom相同的框架构建的,在许多方面类似,但速度更快。而Sublime需要花钱购买...无论如何,这是强烈的基于个人观点,但我想说出我的看法。 - iz_
这个程序以每次打开时弹出烦人的弹窗而臭名昭著。建议避免使用!https://forum.sublimetext.com/t/solved-disable-update-available-pop-up/1381/42 - gimmegimme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接