2014-03-24 90 views
-1

用以下格式解析文本文件到JSON或從文件中獲取鍵/值的更快方式的最佳方式是什麼?使用Ruby將格式化的TXT文件轉換爲JSON?

Data Format: 
    dateTimeDelimiter: " " 
    decimalSeparator: "." 
    dataDelimiter: "," 
    dateFormat: M/d/yy 
    timeFormat: HH:mm:ss 
    gmtOffset: "-5" 
    daylightSavings: true 

Logger Info: 
    - &1 
    launchDescription: "DESCr" 
    model: U30 
    vendor: VendorName 
    serialNumber: 1234567 
    memorySize: 0 
    firmwareVersion: 1.117 
    firmwareVersionRaw: 0 
    deploymentNumber: 1523 
Series Info: 
- name: "Scaled Series" 
    type: value 
    unitName: "kW" 
    OMClassName: OMeasurementH21 
    OMPartNumber: S-UCD-MXXX 
    OMUnitIndex: 0 
    OMChannelType: 12 
    OMValuePattern: "#,##0.;-#,##0." 
    logger: *1 
- name: "Scaled Series" 
    type: value 
    unitName: "kW" 
    OMClassName: OMeasurementH21 
    OMPartNumber: S-UCD-MXXX 
    OMUnitIndex: 0 
    OMChannelType: 12 
    OMValuePattern: "#,##0.;-#,##0." 
    logger: *1 

    ---- 

虛線後面有CSV數據,我已經解析。有什麼建議麼?

回答

1

該文件看起來像YAML。你應該能夠使用yaml = YAML.load_file("some_file.txt")解析爲哈希,然後將其轉換爲JSON與yaml.to_json

+1

你試過嗎?當我在這裏嘗試時它不起作用。 'Psych :: SyntaxError:(input.yaml):在第11行第3列解析塊集合時未找到預期的' - '指示符。我不熟悉YAML,但看起來這不是有效的YAML。 –

+0

:D you rock!...只是一個簡單的問題:我怎樣才能解析到「-----」行? – Pavel

+0

我們不解析'---'行,YAML解析器爲我們處理它們。這看起來像YAML中意外縮進的文檔分隔符。閱讀[YAML文檔](http://www.yaml.org/YAML_for_ruby.html)。 –

相關問題