неправильный вывод атрибутов

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 09:28

Код: Выделить всё

for (k,attr) in attrs.iteritems():
                if k in [1,2]:
                    f.write("%d: %s" % (k, attr.toString()))
Вывожу вот таким образом атрибуты выделенного мною объекта.
но в файл,к атрибуту "площадь",записывается лишняя цифра "2".Именно "2".И так со всеми объектами
и вместо площади 121,я получаю 1212

Подскажите,пожалуйста,в чем может быть дело и как это можно исправить?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov » 08 июн 2012, 09:57

Так сложно сказать, приложите shape-файл хотя бы с парой таких объектов, чтобы можно было посмотреть.
Spatial is now, more than ever, just another column- The Geometry Column.

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: неправильный вывод атрибутов

Сообщение Ariki » 08 июн 2012, 10:14

Подозреваю, что причина внутри toString()

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 10:26

вот
Вложения
Vydel.shp
(337.43 КБ) 720 скачиваний

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 10:29

Ariki писал(а):Подозреваю, что причина внутри toString()
Да,мне тоже так кажется
Наверно при конвертации из int он что-то не то делает...но почему..непонятно..

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov » 08 июн 2012, 10:29

Вы шутите? Попробуйте открыть у себя то, что вы выложили. Запакуйте все необходимые файлы в один архив и его приложите, в *.shp атрибутика не хранится.
Spatial is now, more than ever, just another column- The Geometry Column.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: неправильный вывод атрибутов

Сообщение Voltron » 08 июн 2012, 10:31

Denis Rykov писал(а):Вы шутите? Попробуйте открыть у себя то, что вы выложили.
Самое смешное, что у топикстартера как раз все откроется.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 10:34

Всё всё,ступила и поторопилась,простите!
Вложения
1.rar
(175.68 КБ) 312 скачиваний

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov » 08 июн 2012, 10:39

У меня никаких двоек лишних нет, всё нормально выводится:

Код: Выделить всё

0: 3
1: 2996
2: 109
0: 3
1: 153
2: 121
Spatial is now, more than ever, just another column- The Geometry Column.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 10:41

а вы через консоль?
я просто в PyScripter.
запускаю как модуль
Это имеет значение?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov » 08 июн 2012, 10:43

Да, через консоль, что такое PyScripter не в курсе.
Spatial is now, more than ever, just another column- The Geometry Column.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 10:44

Код: Выделить всё

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *


class HelloWorld:

    def __init__(self, iface):
        # Save reference to the QGIS interface
        self.iface = iface
        self.canvas = iface.mapCanvas()

    def initGui(self):
        # Create action that will start plugin
        self.action = QAction(QIcon(":/plugins/"), "&HelloWorld", self.iface.mainWindow())
        # connect the action to the run method
        QObject.connect(self.action, SIGNAL("activated()"), self.hello_world)

        # Add toolbar button and menu item
        self.iface.addPluginToMenu("HelloWorld", self.action)



    def unload(self):
        # Remove the plugin menu item and icon
        self.iface.removePluginMenu("HelloWorld",self.action)



    # run
    def hello_world(self):


        QMessageBox.information(self.iface.mainWindow(), QCoreApplication.translate('HelloWorld', "HelloWorld"), QCoreApplication.translate('HelloWorld', "HelloWorld"))
        f=open('/temp/op.txt', 'wt')


        layer = self.iface.activeLayer()
        feats = layer.selectedFeatures()
        for feat in feats:
            attrs = feat.attributeMap()


            for (k,attr) in attrs.iteritems():
                if k in [1,2]:
                    f.write("%d: %s" % (k,attr.toString()))
                   
        f.close()
if __name__ == "__main__":
    pass
Вот весь мой код

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: неправильный вывод атрибутов

Сообщение Denis Rykov » 08 июн 2012, 10:59

А в консоли у вас нормально работает? Если да, то придется вам самим разбираться со своим PyScripter.
Spatial is now, more than ever, just another column- The Geometry Column.

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 11:03

а в какой именно консоли вы запускали? в консоли Qgis?
я не могу запустить запустить через консоль.
построчно вводить или как скриптом,изначально записав код в .py файл ?

Cathrin
Участник
Сообщения: 67
Зарегистрирован: 16 май 2012, 10:38
Репутация: 0

Re: неправильный вывод атрибутов

Сообщение Cathrin » 08 июн 2012, 11:04

а PyScripter это IDE для python
или по-другому как Visual Studio для C#

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя