【问题标题】:Parsing a JSON file but not getting everything returned解析 JSON 文件但没有返回所有内容
【发布时间】:2018-06-01 13:52:30
【问题描述】:

我正在尝试从 Google Places API 解析 JSON 文件。我正在尝试收集附近地址、lng/lat 坐标以及 Place ID。在包含 JSON 文件的页面上,我的代码正在捕获更多位置的信息,但由于某种原因,它没有从其中一个位置获取数据。我的代码是:

response = urllib.urlopen(url)
data = json.loads(response.read())
for n in range(len(data['results'])):
  location = []
  address = data['results'][n]['vicinity']
  address = address[: address.find(", ")]
  coords_lat = str(data['results'][n]['geometry']['location']['lat'])
  coords_lat = coords_lat[:-4]
  coords_lng = str(data['results'][n]['geometry']['location']['lng'])
  coords_lng = coords_lng[:-4]
  place_id = data['results'][n]['place_id']
  location = [address, coords_lat, coords_lng, place_id]
  print location

但是对于其中一个位置,我的程序正在返回: ...[u'C', '33.87', '-84.53', u'ChIJOUmV_jgX9YgRdN1sudI8yOI']...,而不是该位置的完整附近地址,'C, 2976 Ask-Kay Dr, Smyrna'

This is my python program

This is the API JSON page with one of the results I'm referring to

These are some of the lines my program is printing

【问题讨论】:

  • 请附上文字。链接失效了,该网站的意义不仅在于帮助您,还在于帮助将来遇到同样问题的人。
  • 嗨,Jared,我不太清楚你的意思。我包括了我的代码文本和错误输出的文本。你还建议我包括什么?
  • 请在 JSON 中进行编辑,而不是让它被外部链接。尽管就其价值而言,这个问题在质量方面很容易在该网站上的第一篇文章中排名前四分之一:)
  • 我只是不想在实际问题中添加太多不必要的文字。我不想阻止任何可以帮助阅读它的人,因为它太长了。我会记住这一点,以便我提出问题。另外,感谢您的支持! (:
  • 对于 SO 问题,您希望包含重现问题所必需的所有内容仅此而已。重现的最小测试用例通常包括一些样本数据以及当前输出和所需输出,例如my_function({"foo": 2}) prints {"foo": 4} but should be {"foo": 8} 以及 my_function 的代码。没问题:)

标签: python json parsing google-places-api


【解决方案1】:

您可能想在之后显示address

address = data['results'][n]['vicinity']

在你编辑之前

address = address[: address.find(", ")]

这可能与文本中的, 字符有关

C,2976 Ask-Kay 博士,士麦那

【讨论】:

  • 感谢您的建议!我意识到,因为字符串“,”多次出现,并且我正在使用该字符串进行切片,所以地址在我想要它之前就被切片了。我通过使用 .rfind() 而不是 .find() 解决了这个问题
猜你喜欢
  • 2019-05-16
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 2012-04-07
相关资源
最近更新 更多