1
我探討了其他問題,我並不驚訝地發現沒有滿足我的需求的答案。Python 2.6導出字典多行到Python文件字典格式(.py文件)
我吸收了一個現有的項目,需要對其進行一些改進。一個完整的重寫是在將來很遠,並且目前還不能改變文件格式,因此我需要一個解決方法。
數據源是一個數據庫,帶有一個鍵/值對字段。
我正在選擇數據庫並導出。
問題:
我們正在創建一個新的字典,然後解析它。
output = []
output.append("dictionary = {" + "\n")
# dbdata is just a dictionary of data from the database containing key and value
for result in dbdata
output.append("\"" + str(result['key']) + "\" : \"" + str(result['value']) + "\",")
output.append("}")
response = "\n".join(output)
我們現在有一個非常大的字典將被打印出來。
的當前系統的輸出是這樣的:
dictionary = {
"one": "one value",
"two": "two value",
'three': '
12345/54321*23:Some-Magic/Stuff
12345/54331*23:Some-Magic/Stuff
12345/54321*21:Some-Magic/Stuff
12345/54321*53:Some-Magic/Stuff
12341/54321*23:Some-Magic/Stuff
12343/54321*23:Some-Magic/Stuff
12347/54321*23:Some-Magic/Stuff
12145/54321*23:Some-Magic/Stuff',
"four":"four value",
'five': "['this','is','another']",
}
的所需的格式會是什麼樣子:
dictionary = {
"one": "one value",
"two": "two value",
"three": """
12345/54321*23:Some-Magic/Stuff
12345/54331*23:Some-Magic/Stuff
12345/54321*21:Some-Magic/Stuff
12345/54321*53:Some-Magic/Stuff
12341/54321*23:Some-Magic/Stuff
12343/54321*23:Some-Magic/Stuff
12347/54321*23:Some-Magic/Stuff
12145/54321*23:Some-Magic/Stuff""",
"four":"four value",
"five":['this','is','another'],
}
注意:您會看到,在現有的,它是:
- 引用鍵「五」當它不應該
- 不應該三重引用「三」,因爲它應該 - 一個多行值。
說明爲什麼這不是一個重複:
- 格式不能更改到一個更合理的/健全的格式,即CSV,JSON,陽明海運 - 所有其他線程(很正確)建議改變它。
- 必須保持人類可讀性多行格式
是的,我知道它的荒謬的,因爲它不是一個非常人性化的可讀格式。
對不起,很長的文字,這是一個難以解釋的問題 - 我意識到這整個事情是糟糕的設計。
謝謝任何能夠幫助的人。
目前我還不清楚你在做什麼。什麼是'export = [「dictionary = {」,(above_data_here_from_database),'}']'假設是?什麼是'above_data_here_from_database'?一個元組?包含字符串?你能舉個例子嗎? –
這個問題並不是很清楚,但可以[\ [Python \]:pprint.pprint](https://docs.python.org/2/library/pprint.html#pprint.pprint)help ?如果是,請使用'pprint.pformat'將其存儲在一個字符串中,然後將該字符串寫入某個文件。無論如何,請向我們展示一下它是如何的,以及您希望如何。 – CristiFati
@ juanpa.arrivillaga - 不,正在創建一個數組,我們嵌入字典「dictionary = {」的第一個組件,然後將數據作爲key:value插入。對困惑感到抱歉。 –