Как я могу автоматически поместить данные в строки кода? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть код GEOJSON, полученный от Статистического управления Канады, и я пытаюсь ввести в него некоторые данные.

Вот мой код geojson

{ "type": "Feature","properties": {"name": "001", "ivl_a": 1.1, "ivl_f": 0.3, "differentiel": 1.5...
{ "type": "Feature","properties": {"name": "002", "ivl_a": 1.1, "ivl_f": 0.3, "differentiel": 0.4...
{ "type": "Feature","properties": {"name": "003", "ivl_a": 1.1, "ivl_f": 0.3, "differentiel": 0.4...

Я хочу заменить данные для ivl_a, ivl_f и дифференцировать данными, которые у меня есть в столбцах Excel.

Как я могу это сделать?

1 Ответ

0 голосов
/ 19 июня 2019

Возможно, это поможет вам, хотя я не уверен, правильно ли я понял все детали.

Поскольку вы не указали подробности, я сделал несколько предположений:

  • ваши данные геоджона представляют собой список объектов json, каждый из которых имеет ключ 'properties'
  • вы обновляете свойства объекта, используя значение поиска 'name' в электронной таблице, которое включено в свойства каждого объекта

Я установил структуру csv (без заголовка): name, ivl_a, ivl_f, дифференциал

С точки зрения чтения / записи данных геоджонса, я оставил это в качестве упражнения для вас (поскольку приведенный выше пример данных неполон)

import csv


def read_csv(csv_filename):
    # assuming csv of (without header)
    #  name, ivl_a, ivl_f, differentiel

    lookup = {}

    with open(csv_filename) as csvfile:
        reader = csv.reader(csvfile)
        for row in reader:
            name = row[0]
            lookup[name] = {
                'lvl_a': row[1],
                'lvl_f': row[2],
                'differentiel': row[3]
            }

    return lookup


def main():
    lookup = read_csv('data.csv')

    # todo: read the data into list of dicts
    features = []

    for feature in features:
        props = feature['properties']
        name = props['name']
        props['lvl_a'] = lookup[name]['lvl_a']
        props['lvl_f'] = lookup[name]['lvl_f']
        props['differentiel'] = lookup[name]['differentiel']

    # todo: save


if __name__ == '__main__':
    main()

Надеждаэто помогает.

...