我的文件包含此格式[{「a」:1,「c」:4},{「b」:2,「d」:5}],我想將此文件讀入Python中的列表。列表項應該是{「a」:1,「c」:4}和{「b」:2,「d」:5}。我試圖讀入一個字符串,然後在列表中進行類型轉換,但這沒有幫助。它是逐字讀字。從文件中讀取列表
從文件中讀取列表
回答
您可以「轉換」,其中包含一個列表,這樣
>>> import ast
>>> ast.literal_eval('[{"a":1, "c":4},{"b":2, "d":5}]')
[{'a': 1, 'c': 4}, {'b': 2, 'd': 5}]
實際列表的字符串當然你也可以分出來你從文件
另一個讀取數據的文字串的,更髒的選擇是這樣的(它會產生字符串列表):
a = str('[{"a":1, "c":4},{"b":2, "d":5}]')
b = list()
for i in a.replace('[','').replace(']','').split(sep='},'):
b.append(i+'}')
b[len(b)-1] = b[len(b)-1].replace('}}','}')
for i in b:
i
'{"a":1, "c":4}'
'{"b":2, "d":5}'
由於由Tim建議AST早會比第一層deaper,它實際上將轉化基礎字符串進入字典。所以,而不是字符串列表,你會得到字典的列表。我不確定這是你想要得到的。
使用json模塊來加載json數據。由於JSON數據是一個列表,它會被轉換爲Python的list,當你調用json.load
:
import json
with open(path_to_jsonfile, 'r') as jsonfile:
jsonlist = json.load(jsonfile)
for listitem in jsonlist:
print listitem
結果應該是:
{u'a': 1, u'c': 4}
{u'b': 2, u'd': 5}
如果你還沒有嘗試讀取整個文件,你只是從中提取一個字符串,並試圖把它變成一個列表,而不是使用json.loads
方法。 json.load
讀取文件,json.loads
讀取一個字符串。
我得到一個錯誤,因爲「沒有json對象解碼」。我已經嘗試加載json,但不知何故它不工作。 – 2015-02-18 03:05:12
在這種情況下,您需要更新問題,確切地說明您的輸入內容以及您使用的確切代碼。您已經在問題中發佈了有效的json,並且我發佈的代碼正常工作。 – 2015-02-18 05:35:34
- 1. 從文本文件中讀取列表
- 2. 從列表中讀取文件
- 3. 從行到列表讀取txt文件?
- 4. 如何從文件中讀取列表與子列表?
- 5. 如何從bash中的文件讀取文件名列表?
- 6. 如何從文本文件讀取到列表中並從該列表中讀取C#
- 7. 從列表中讀取
- 8. 從列表中讀取
- 9. 從文件中讀取分層散列
- 10. 從文件中讀取到2陣列
- 11. Powershell從文本文件中讀取服務器列表
- 12. 從文本文件中讀取列表並加入並解碼
- 13. 鏈表從文件中讀取
- 14. 從外部表中讀取Excel文件
- 15. Neo4j - SET使用CYPHER從節點讀取列表的標籤列表,從json文件讀取列表
- 16. 從excel文件列讀取列表並將其存儲在python列表中
- 17. 嘗試從.txt文件讀取到數組列表中
- 18. Python:從文件讀取十六進制到列表中?
- 19. 從ini文件中讀取值列表隨機挑選
- 20. 無法返回從文件中讀取的列表(.csv)
- 21. 從.txt文件讀取雙打到列表中
- 22. 如何從R中的文件讀取列表?
- 23. 使用C++迭代器從文件中讀取列表?
- 24. 對從文件中讀取的列表進行排序?
- 25. Common Lisp從文件中讀取和存儲爲列表
- 26. 從文件中讀取數字列表的最快方法
- 27. 如何從Python中的文件讀取列表?
- 28. 從Julia的文件中讀取一個列表(Array {Any,1})?
- 29. 從txt文件中讀取數據到鏈接列表
- 30. 從Sharepoint列表(不是庫)中讀取文件夾內的ListItems
'它實際上將底層字符串轉換爲字典。所以,而不是字符串列表,你會得到字典的列表。 「我想是這樣的,他說:」列表項應該是{「a」:1,「c」:4}和{「b」:2,「d」 :5}' – 2015-02-17 20:46:08