【发布时间】:2015-06-11 06:31:13
【问题描述】:
我正在尝试查找大量推文的经纬度信息。在 json 推文中,一条推文纬度/经度数据的路径是,
{u'location: {u'geo': {u'coordinates : [120.0,-5.0]}}}
如果此位置路径存在,我希望能够检查每条推文。如果是这样,那么我想稍后在函数中使用该信息。如果没有,那么我想检查另一个位置路径,最后转到下一条推文。
这是我目前检查此路径是否存在以及是否有相应数据的代码。 'data' 是我使用 data.append(json.loads(line)) 方法打开的 twitter 文件列表。
counter = 0
for line in data:
if u'coordinates' in data[counter][u'location'][u'geo']:
print counter, "HAS FIELD"
counter += 1
else:
counter += 1
print counter, 'no location data'
我收到此代码的 KeyError 错误。如果我只是执行下面的代码,它可以工作,但不够具体,无法真正让我获得我需要的信息。
counter = 0
for line in data:
if u'location' in data[counter]:
print counter, "HAS FIELD"
counter += 1
else:
counter += 1
print counter, 'no location data'
有没有人有办法做到这一点。
下面是关于我整体工作的更多背景信息,但以上总结了我遇到的问题。
背景:我可以访问通过 gnip 购买的 120 亿条推文,这些推文分为多个文件。我试图一一梳理这些推文,找出哪些有位置(纬度/经度)数据,然后查看相应的坐标是否在某个国家/地区。如果该推文确实属于该国家/地区,我会将其添加到一个新数据库中,该数据库是我更大数据库的一个子集。
我已经成功创建了一个函数来测试纬度/经度是否落在目标国家/地区的边界框中,但是由于 2 个原因,我很难为每条推文填充纬度/经度。 1)如果存在的话,每个json文件中都有多个地方存储long/lat数据。 2) 推文被组织在一个复杂的字典中,我很难翻阅。
我需要能够遍历每条推文并查看是否存在针对不同位置路径的特定纬度/经度组合,以便我可以将其拉出并将其输入到我的函数中,以测试该推文是否源自我所在的国家/地区兴趣。
【问题讨论】:
标签: python json twitter dictionary key