我的資料檔案如下所示:
{'data': 'xyz', 'code': '<:c:605445> **[Code](https://traindata/35.6547,56475', 'time': '2021-12-30T09:56:53.547', 'value': 'True', 'stats': '96/23', 'dupe_id': 'S<:c-74.18'}
我正在嘗試列印這一行:
35.6547,56475
這是我的代碼:
data = "above mentioned data"
for s in data.values():
print(s)
while data != "stop":
if data == "quit":
os.system("disconnect")
else:
x, y = s.split(',', 1)
輸出是:
{'data': 'xyz', 'code': '<:c:605445> **[Code](https://traindata/35.6547,56475', 'time': '2021-12-30T09:56:53.547', 'value': 'True', 'stats': '95/23', 'dupe_id': 'S<:c-74.18'}
x, y = s.split(',', 1)
AttributeError: 'dict' object has no attribute 'split'
我試過將它轉換成元組,串列,但我遇到了同樣的錯誤。x,y 中的輸入應該是上面提到的預期輸出 (35.6547,56475)。任何幫助將不勝感激。
uj5u.com熱心網友回復:
你可以這樣做:
x,y = d['code'].split('/')[-1].split(',')
這意味著,您需要通過其中一個鍵來訪問字典,在這里您要查找“代碼”。您檢索字串 '<:c:605445> **[Code](https://traindata/35.6547,56475',您現在可以通過正則運算式進行決議,或者您只需在 '/' 處進行拆分并取最后一個使用 [-1] 的元素。然后您可以拆分剩余的數字,您實際上正在尋找并將它們分別寫入 x 和 y。
當然,您可能希望通過捕獲您在評論中提到的 KeyError 來檢查傳入資料是否有效:
try:
x,y = d['code'].split('/')[-1].split(',')
except KeyError:
print(f'Data invalid. Key "code" not found. Got: {data} instead')
uj5u.com熱心網友回復:
另一種選擇是在代碼元素上使用一個簡單的正則運算式 - 從字串末尾開始的正則運算式,找到 a 的所有數字。find all numbers to a ,找到所有數字。
import re
d = {'data': 'xyz', 'code': ':c: **[Code](https://traindata/35.6547,56475', 'time': '2021-12-30T09:56:53.547', 'value': 'True', 'stats': '96/23', 'dupe_id': 'S<:c-74.18'}
print(re.findall(r'\d .\d ,\d $', d['code'])[0])
uj5u.com熱心網友回復:
您只能拆分文本而不是字典型別
首先獲取要拆分的文本
d['code']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/400143.html
下一篇:如何將元組轉換為字典?
