我从mongodb集合创建了一个数据表。此数据表中的数据采用JSON格式,但我无法从中提取信息..
{ “地点”:{ “bounding_box”:{ “类型”:“多边形”, “坐标”: [ [ -119.932568, 36.648905 ] [ -119.632419, 36.648905 ] ] ] }}}
我需要坐标的前两个值:lat = 36.648905和lon = -119.932568
但似乎无法提取该信息:
<class 'psycopg2.extras.DictRow'>
Traceback (most recent call last):
File "rtk_film_nos.py", line 231, in <module>
main()
File "rtk_film_nos.py", line 150, in main
title['name'] = foo
TypeError: list indices must be integers, not str
我尝试了很少的组合,但我总是得到NULL。 谢谢你的帮助......
- 编辑 - 包括我如何连接数据库并从中创建数据帧的代码..
my_lon <- myBigDF$place.bounding_box.coordinates[1[1[1]]]
答案 0 :(得分:0)
很难准确地告诉你如何从JSON字符串转到R对象。有不同的库以不同的方式解析事物。如果我假设使用&#34; rjson&#34;,那么你会有类似
的东西x <- rjson::fromJSON('{"place":{"bounding_box":{ "type":"Polygon", "coordinates":[ [ [ -119.932568, 36.648905 ], [ -119.632419, 36.648905 ] ] ] }}}')
因为你的数据似乎有过多的方括号,所以事情有点乱。您可以使用
进入坐标部分x$place$bounding_box$coordinates
# [1]]
# [[1]][[1]]
# [1] -119.9326 36.6489
#
# [[1]][[2]]
# [1] -119.6324 36.6489
这是矢量列表的列表。要制作一个很好的纬度/经度坐标矩阵,你可以做
do.call(rbind, x$place$bounding_box$coordinates[[1]])