這是我的文本文件的內容(如:abc.doc):如何刪除逗號,使用正則表達式在python括號?
{'data': [{'name': 'abc'},{'name': 'xyz'}]}
在Python打開文件後,我如何刪除所有括號,引號和逗號。 最終的輸出應該是:
data:
name:abc
name:xyz
這是我的文本文件的內容(如:abc.doc):如何刪除逗號,使用正則表達式在python括號?
{'data': [{'name': 'abc'},{'name': 'xyz'}]}
在Python打開文件後,我如何刪除所有括號,引號和逗號。 最終的輸出應該是:
data:
name:abc
name:xyz
使用ast.literal_eval()
把它變成一個Python結構,然後打印值:
with open(r'd:\output1.doc', 'r') as inputfile:
inputstring = inputfile.read()
data = ast.literal_eval(inputstring)
for key, sublist in data.items():
print '{}:'.format(key)
for subdict in sublist:
for key, value in subdict.items():
print('{}:{}'.format(key, value))
爲了您的例子,其結果是:
>>> inputstring = "{'data': [{'name': 'abc'},{'name': 'xyz'}]}"
>>> import ast
>>> data = ast.literal_eval(inputstring)
>>> for key, sublist in data.items():
... print '{}:'.format(key)
... for subdict in sublist:
... for key, value in subdict.items():
... print '{}:{}'.format(key, value)
...
data:
name:abc
name:xyz
但是:如果你從Facebook API獲得這個,那麼你錯誤地轉錄了格式。 Facebook的API給你JSON數據,它採用雙引號("
),而不是:
{"data": [{"name": "abc"},{"name": "xyz"}]}
在這種情況下,你應該使用Python自帶的json
library:
import json
data = json.loads(inputstring)
# process the same way as above.
如果你有一個文件名,你可以要求使用庫從文件中讀取直:
data = json.load(filename) # note, no `s` after `load`.
這是否始終是輸入字符串的格式?它可以是'[{'data':[{'name':'abc'},{'name':'xyz'}]}]'? – mgilson
這是我使用facebook圖形API獲得的字符串,我寫入了一個doc文件。所以總是一樣的。 –
不要重新發明輪子!這種格式稱爲JSON,使用* JSON解析*庫。 –