>source

JSON 파일에서 데이터를 추출하고 지도의 국가 수도에 점을 표시하려는 읽기 자료에 간단한 code를 복제하려고 합니다.

제 문제와 관련하여

Traceback (most recent call last):
  File "C:\Users\serta\Desktop\python\db\capitals.py", line 14, in <module>    lons.append(cp_dicts['geometries']['coordinates'][0])
TypeError: string indices must be integers
[Finished in 188ms]

여기에서 비슷한 게시물을 읽고 문제의 "이유"를 이해한다고 생각합니다. 내 []와 둥지의 깊이를 두 번 확인했지만 스스로 고칠 수 없는 것 같습니다.

내 code(lons.append 라인)로 대상을 지정하는 정수를 보고 있다고 확신하지만 여전히 "TypeError: string indexes must be integers"가 표시됩니다.

code는 다음과 같습니다.

import json
from plotly.graph_objs import Scattergeo, Layout
from plotly import offline
#Explore the structure of the data.
filename= 'data/capitals.topo.json'
with open (filename) as f:
    all_cp_data= json.load(f)
all_cp_dicts=all_cp_data
lons,lats,hover_texts=[],[],[]
for cp_dicts in all_cp_dicts['objects']['capitals']:
    lons.append(cp_dicts['geometries']['coordinates'][0])
    lats.append(cp_dicts['geometries']['coordinates'][1])
    hover_texts.append(cp_dicts['properties']['capital'])
#Map the earthquakes.
data= [{
    'type':'scattergeo',
    'lon':lons,
    'lat':lats,
    'text': hover_texts,
    'marker':{
        'size': [5],
        #'color': mags,
        #'colorscale': 'plasma',
        #'reversescale':True,
        #'colorbar':{'title':'Magnitude'},
    },
}]
my_layout= Layout(title="Capital Cities")
fig={'data':data, 'layout':my_layout}
offline.plot(fig, filename='capital_cities.html')

여기에 내가 사용하는 capitals.topo.json도 있습니다.

{
  "type": "Topology",
  "objects": {
    "capitals": {
      "type": "GeometryCollection",
      "geometries": [
        {
          "type": "Point",
          "coordinates": [
            90.24,
            23.43
          ],
          "id": "BD",
          "properties": {
            "country": "Bangladesh",
            "city": "Dhaka",
            "tld": "bd",
            "iso3": "BGD",
            "iso2": "BD"
          }
        },

  • 이전 Lambda가 code 빌드를 실행하도록 트리거하지 않습니까?
  • 다음 값에 가까운 값으로 데이터 프레임 정렬 -R