Swift:
CSV के साथ काम करना

कैसे:

Swift में, CSV फ़ाइलों को सीधे पार्स करने के लिए मूल समर्थन नहीं है, लेकिन आप सामग्री को विभाजित करने के लिए String विधियों का उपयोग करके या SwiftCSV जैसी तृतीय-पक्ष पुस्तकालयों का लाभ उठाकर CSV डेटा को संभाल सकते हैं जो एक अधिक सुगम दृष्टिकोण प्रदान करता है। यहाँ दोनों विधियाँ हैं:

बाहरी पुस्तकालयों के बिना मैन्युअल पार्सिंग

// एक सरल CSV स्ट्रिंग पर विचार करें
let csvString = """
name,age,city
John Doe,29,New York
Jane Smith,34,Los Angeles
"""

// CSV स्ट्रिंग को पंक्तियों में विभाजित करें
let rows = csvString.components(separatedBy: "\n")

// पहली पंक्ति से कीज़ निकालें
let keys = rows.first?.components(separatedBy: ",")

// दूसरी पंक्ति से शुरू होकर पंक्तियों पर इटरेट करें
var result: [[String: String]] = []
for row in rows.dropFirst() {
    let values = row.components(separatedBy: ",")
    let dict = Dictionary(uniqueKeysWithValues: zip(keys!, values))
    result.append(dict)
}

// नमूना आउटपुट
print(result)
// आउटपुट देता है: [{"city": "New York", "age": "29", "name": "John Doe"}, {"city": "Los Angeles", "age": "34", "name": "Jane Smith"}]

यह दृष्टिकोण सीधा है लेकिन विशेष मामलों जैसे कि मूल्यों में अल्पविराम, क्षेत्रों के भीतर लाइन ब्रेक्स आदि वाली CSV फ़ाइलों के साथ रोबस्टनेस की कमी होती है।

SwiftCSV पुस्तकालय का उपयोग करना

पहले, अपनी परियोजना में SwiftCSV जोड़ें जिसे आपकी Package.swift निर्भरताओं में शामिल करके किया जा सकता है:

.package(url: "https://github.com/swiftcsv/SwiftCSV.git", from: "0.5.6")

फिर, इस प्रकार इसे आयात करें और उपयोग करें:

import SwiftCSV

// मान लें कि `csvString` उपरोक्त के रूप में परिभाषित है

// एक CSV ऑब्जेक्ट बनाएँ
if let csv = try? CSV(string: csvString) {
    // डिक्शनरीज के रूप में पंक्तियों तक पहुंचें
    let rows = csv.namedRows
    
    // नमूना आउटपुट
    print(rows)
    // आउटपुट देता है: [{"city": "New York", "age": "29", "name": "John Doe"}, {"city": "Los Angeles", "age": "34", "name": "Jane Smith"}]
}

SwiftCSV में समाहित अल्पविराम, क्षेत्रों में लाइन ब्रेक्स, और अक्षर एन्कोडिंग जैसे बारीकियों को स्वचालित रूप से सामना करके पार्सिंग को सरल बनाया जाता है। हालाँकि, वास्तविक दुनिया के अनुप्रयोगों में, विशेष रूप से बाहरी डेटा स्रोतों से निपटते समय संभावित त्रुटियों से निपटना याद रखें।