2017-03-06 57 views
0

對於自動化測試腳本插入UUID成YAML時,我想在運行時生成隨機UUID值,所以增加了一些YAML,看起來像這樣:錯誤使用「!!蟒/對象」

--- 
applicant: 
    idNumbers: 
    nationalId: !!python/object:uuid.uuid4 

ConstructorError: expected a mapping node, but found scalar 
    in "<unicode string>", line 4, column 17: 
     nationalId: !!python/object:uuid.uuid4 
        ^

如何通過注入YAML的標籤的UUID值:

然而,當我嘗試yaml.load值這會產生一個錯誤?

回答

0

我發現錯誤信息有點嚇人,但經過一番思考,我能夠解開它。

解析器期待「映射」節點,而不是標量。那麼,如果我添加一個映射會發生什麼?

>>> yaml.load('''--- 
... applicant: 
... idNumbers: 
...  nationalId: !!python/object:uuid.uuid4 {}''') 
{'applicant': {'idNumbers': {'nationalId': UUID('71e09d1d-e84e-4ea6-855d-be1a2e91b60a')}}} 

附加信息:http://yaml.org/type/map.html