Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建了一个字典,但某些键值对似乎丢失或无法传输_Python_Json_Dictionary - Fatal编程技术网

Python 创建了一个字典,但某些键值对似乎丢失或无法传输

Python 创建了一个字典,但某些键值对似乎丢失或无法传输,python,json,dictionary,Python,Json,Dictionary,在将json风格的python代码转换为字典时,我遇到了一个问题。我正在使用一个从谷歌提取位置数据的工具,获取我需要的所有数据。但是,每当我从数据列表创建字典时,就会丢失一些键:值对 下面是我得到的json风格的python代码 { 'html_attributions': [], 'next_page_token': 'CpQCBgEAAFzW9_qpkvmXV8sFiwXg6dEp2jsZXEqQOO4upW1U0FZPK0kiJvSmEbx4EuhAtDD4vtJcC4duqCj6

在将json风格的python代码转换为字典时,我遇到了一个问题。我正在使用一个从谷歌提取位置数据的工具,获取我需要的所有数据。但是,每当我从数据列表创建字典时,就会丢失一些键:值对

下面是我得到的json风格的python代码

{
  'html_attributions': [],
  'next_page_token': 'CpQCBgEAAFzW9_qpkvmXV8sFiwXg6dEp2jsZXEqQOO4upW1U0FZPK0kiJvSmEbx4EuhAtDD4vtJcC4duqCj6oo0P68cRkGArenzZQWr61Wne0vA44R16SrfCDWLxQjqUu8zUcdLvdB7HfOHPMd7-KWK4cmX-6bLYIJldmnJBeqhnR5xmtB_TGlMyGlzh4vZ4kOB8dc1bnD6ijWxfFyz8wJ1ugA_5hZHLXtCY6NkE8TVYgTTV9710puKlKgiVSSkjwV3IsGgEhzixzGRrVHg2dB3Ehv2KHRuXnvIQJHr-CIkUoK79vI-45pyitdYlW1h9UQk_fzDsIeec3PNE5Qz6kN--NcDv-_jzFBr7QS2RGLkAcZX4aFdfEhCoP3MAVgjsl_tKdYaIX8y_GhSvCFZSxLfWVDAyF--7T6l32G0YFw',
  'results': [{
    'formatted_address': '2222 McKinney Ave, Dallas, TX 75201, United States',
    'geometry': {
      'location': {
        'lat': 32.7935,
        'lng': -96.8021119
      },
      'viewport': {
        'northeast': {
          'lat': 32.7948813802915,
          'lng': -96.8009040197085
        },
        'southwest': {
          'lat': 32.7921834197085,
          'lng': -96.8036019802915
        }
      }
    },
    'icon': 'https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png',
    'id': '26ba45975d09c8889ea321078b6bf10ceff07359',
    'name': 'Smashburger',
    'opening_hours': {
      'open_now': True,
      'weekday_text': []
    },
    'photos': [{
      'height': 3024,
      'html_attributions': ['<a href="https://maps.google.com/maps/contrib/107709113475800121508/photos">Terry Wint Jr</a>'],
      'photo_reference': 'CmRaAAAA9BPb8sP5KUp9bLAgSd9dPQzH15TkG3sw5T6qOa-WSV1hi-3DLIhVzWI5woD2GtSl3aktKXTXktLUfr9vpum-XywbqFMKunee-YhWwPtwOGJaO5lULU-g1px7Z6lPUFvqEhDrofF3_89I455YRKo2hZuFGhRilVDqXdt5x2jPieN3W07UvJwsvA',
      'width': 4032
    }],
    'place_id': 'ChIJ22Ci9y-ZToYRDw1hkXkjceY',
    'price_level': 1,
    'rating': 4.1,
    'reference': 'CmRSAAAAzQIvy0nuhTQpRoAFTlilcVY_BfqGFj7gNlpNeIecwOWGV1x0qFm80zkPYFYKtJ15ilHYSoQbDH2wsQ_vahw5ilhriHA0EBWavcyev4mYVgNWssL0neY5d7YwOLAgtSEvEhBN6e_DakrfQPVtqkagEtQ4GhRCdi5cZ6CKfk6AqXkuGJ9ZVpuR-A',
    'types': ['restaurant', 'food', 'point_of_interest', 'establishment']
  }
我希望能够提取
“lat”、“lng”、“name”、“open\u now”、“price\u level”、“rating”、“type”
。我可以调用除最后三个之外的所有函数,因为它们没有作为键值对存储在
'geocode\u result'
中。任何帮助或建议都将不胜感激

“是的,但您正在地理编码结果['results']中搜索,因此您应该在地理编码结果['results']中查找i:print i.keys()”-@aws\u peedient

但事实证明,我出错的原因是并非所有结果都有“价格水平”,因此我将使用try语句来避免该问题。

“是的,但您正在地理编码结果['results']中搜索,因此您应该在地理编码结果['results']中查找I:print I.keys()”-@aws\u peedient


但事实证明,我出错的原因是,并非所有结果都有“价格水平”,因此我将使用try语句来避免该问题。

我无法重现此问题,而且
geocode\u结果
是一个列表,所以我不知道您是如何像字典一样对其进行迭代的。抱歉,我不小心从以前的版本复制了它,我现在将编辑它。我仍然无法复制它。我回到美国德克萨斯州达拉斯麦金尼大街2222号,邮编75201,['code>['Smashburger',32.7935,-96.8021119',真的,1,4.1,['restaurant','food','point of the interest','restitution']这不是你想要的吗?你运行它时没有收到任何键错误吗?我能够运行它,但后来我不断收到关键错误,因为
'price\u level',rating',types'
不是
'geocode\u result'
'geocode\u result['results'].
的键。实际上它们是键,
[‘评级’、‘参考’、‘价格水平’、‘地点id’、‘照片’、‘格式化地址’、‘id’、‘类型’、‘图标’、‘名称’、‘几何’、‘营业时间’]
我无法复制此内容,而且
geocode\u result
是一个列表,所以我不知道您是如何像字典一样对其进行迭代的。抱歉,我不小心从以前的版本复制了它,我现在将对其进行编辑。我仍然无法复制它。我返回
[美国德克萨斯州达拉斯麦金尼大道2222号,邮编75201,美国得克萨斯州,32.7935,-96.8021119,Smashburger,真实,1,4.1,[“餐厅”、“食品”、“兴趣点”、“企业”]
这不是你想要的吗?你运行它的时候没有得到任何关键错误吗?我可以运行它,但后来我一直得到关键错误,因为
价格水平、评级、类型
不是
'geocode\u result'
'geocode\u result['results']
的键。实际上它们是键,
[‘评级’、‘参考’、‘价格水平’、‘地点id’、‘照片’、‘格式化地址’、‘id’、‘类型’、‘图标’、‘名称’、‘几何图形’、‘营业时间’]
results = []

# def get_data():
for term, (latitude, longitude, search_radius) in search_parameters.items():
    params = {
        'query': term,
        'location': (latitude, longitude),
        'radius': search_radius
    }
    geocode_result = gmaps.places(**params)
    for i in geocode_result['results']:

        results.append(i['name'])
        results.append(i['geometry']['location']['lat'])
        results.append(i['geometry']['location']['lng'])
        results.append(i['formatted_address'])
        results.append(i['opening_hours']['open_now'])
        results.append(i['price_level'])
        results.append(i['rating'])
        results.append(i['types'])

    if 'next_page_token' in geocode_result.keys():
        while 'next_page_token' in geocode_result.keys():
            time.sleep(2.5)
            params.update({'page_token': geocode_result['next_page_token']})
            geocode_result = gmaps.places(**params)
            for i in geocode_result['results']:
                results.append(i['name'])
                results.append(i['geometry']['location']['lat'])
                results.append(i['geometry']['location']['lng'])
                results.append(i['formatted_address'])
                results.append(i['opening_hours']['open_now'])
                results.append(i['price_level'])
                results.append(i['rating'])
                results.append(i['types'])
    else:
        break

print(results)