如何在Python中使用正则表达式去掉逗号和括号?
这是我文本文件的内容(比如说:abc.doc):
{'data': [{'name': 'abc'},{'name': 'xyz'}]}
在用Python打开这个文件后,我该如何去掉所有的括号、引号和逗号呢?最后的结果应该是:
data:
name:abc
name:xyz
相关问题:
2 个回答
4
使用 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 库:
import json
data = json.loads(inputstring)
# process the same way as above.
如果你有一个文件名,可以让这个库直接从文件中读取数据,方法是:
data = json.load(filename) # note, no `s` after `load`.