【问题标题】:Parsing a complex JSON dynamically动态解析复杂的 JSON
【发布时间】:2014-03-30 15:40:40
【问题描述】:

我正在研究 Twitter json 对象,您可以在 link 中找到一个示例:

我正在使用类似于链接中的代码从 json 文件中提取信息。但是,就我而言,我正在尝试解析动态 twitter 数据,并且某些实体有多个条目或没有,在这种情况下,解析变得更加棘手,并且涉及大量的字符串操作。

例如,关键的“坐标”出现在两到三个区域中,而 ['coordinates']['coordinates'] 可能有值,也可能没有值。

与主题标签类似,可能没有主题标签或只有一个主题标签或多个条目。如果我有多个主题标签,则存储为列表,带有嵌套参数,如索引和文本。

例如,[{u'indices': [81, 91], u'text': u'NYFLC2014'}, {u'indices': [92, 102], u'text': u'NYFLC2013'}]

我不会提前知道他们。

这些数据是动态进来的,需要以 xmls 的形式存储,然后馈送到 Apache Solr 进行索引。有没有一种有效的解析方法来做这种活动?

我用的是python2.7,

【问题讨论】:

  • 除了json.loads(line),你不应该做任何事情

标签: python json twitter


【解决方案1】:

可以使用ast.literal_eval将json数据直接解析为python对象:

import ast
datajson = """[ {u'indices': [81, 91], u'text': u'NYFLC2014'},
                {u'indices': [92, 102], u'text': u'NYFLC2013'}]"""
data = ast.literal_eval(data) 

输出:

data[0]['text']
Out[34]: u'NYFLC2014'

【讨论】:

  • 不,你不能。您发布的不是 JSON。 JSON 的一个子集是有效的 Python 语法,但不是全部。 (我猜 OP 从已经解析的代码中发布了 sn-p)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
  • 2020-10-29
  • 2021-06-20
  • 2018-01-05
相关资源
最近更新 更多