簡體   English   中英

在字符串列表中,對於每個字符串,在特定字符之后刪除字符串的一部分

[英]In a list of strings, for each string remove part of a string after a specific character

我有一個字符串列表,我想去掉字符“_”之后的字符串部分,但它給了我一個我找不到的錯誤

import requests
url = 'https://data.gateapi.io/api2/1/pairs'
r = requests.get(url = url)
coins = r.json()
print(coins)
['USDT_CNYX', 'BTC_USDT', 'BCH_USDT', 'ETH_USDT', 'ETC_USDT', 'QTUM_USDT', 'LTC_USDT', 'DASH_USDT', 'ZEC_USDT', 'BTM_USDT', 'EOS_USDT', 'REQ_USDT', 'SNT_USDT', 'OMG_USDT']

clean_coins = []
for coin in coins:
    test=coin.split("_")
    test = test[0]
    clean_coins = clean_coins.append(test)

AttributeError: 'NoneType' object has no attribute 'append'

問題出在clean_coins = clean_coins.append(test)

append列表的方法修改的列表,並且沒有返回,這意味着你要分配的結果clean_coins.append(test)這是Noneclean_coins和你得到一個錯誤的下一個迭代,因為clean_coins現在None和你試圖在其上調用.append()

要修復它,只需將clean_coins = clean_coins.append(test)替換為clean_coins.append(test)

你可以有一個像下面這樣的 1 個襯里

coins = ['USDT_CNYX', 'BTC_USDT', 'BCH_USDT', 'ETH_USDT', 'ETC_USDT', 'QTUM_USDT', 'LTC_USDT', 'DASH_USDT', 'ZEC_USDT', 'BTM_USDT', 'EOS_USDT', 'REQ_USDT', 'SNT_USDT', 'OMG_USDT']

clean_coins = [x.split('_')[0] for x in coins]
print(clean_coins)

輸出

['USDT', 'BTC', 'BCH', 'ETH', 'ETC', 'QTUM', 'LTC', 'DASH', 'ZEC', 'BTM', 'EOS', 'REQ', 'SNT', 'OMG']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM