如何在Python中使用正则表达式去掉逗号和括号?

1 投票
2 回答
976 浏览
提问于 2025-04-17 14:49

2 个回答

0

看起来你在使用json,这是一种很容易处理的数据格式,你可以用pyjson来解析它:

import json
obj=json.loads(u'''{'data': [{'name': 'abc'},{'name': 'xyz'}]}''')

现在一切都搞定了,是吧?

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`.

撰写回答