Nano Hash - криптовалюты, майнинг, программирование

csv2json.py ошибка

Я пытаюсь запустить скрипт csv2json.py в командной строке, но получаю следующее ошибка:

C:\Users\A\Documents\PROJECTS\Django\sw2>csv2json.py csvtest1.csv wkw1.Lawyer
Converting C:\Users\A\Documents\PROJECTS\Django\sw2csvtest1.csv from CSV to JSON as  C:\Users\A\Documents\PROJECTS\Django\sw2csvtest1.csv.json
Traceback (most recent call last):
  File "C:\Users\A\Documents\PROJECTS\Django\sw2\csv2json.py", line 37, in <module>
    f = open(in_file, 'r' )
IOError: [Errno 2] No such file or directory:  'C:\\Users\\A\\Documents\\PROJECTS\\Django\\sw2csvtest1.csv'

Вот соответствующие строки из фрагмента:

31 in_file = dirname(__file__) + input_file_name 
32 out_file = dirname(__file__) + input_file_name + ".json" 
34 print "Converting %s from CSV to JSON as %s" % (in_file, out_file) 
36 f = open(in_file, 'r' ) 
37 fo = open(out_file, 'w') 

Кажется, что имя каталога и имя файла объединены. Как я могу запустить этот скрипт?

Спасибо.

Изменить:

Изменение строк 31 и 32, как ответил Денис Откидач, сработало нормально. Но я понял, что имя первого столбца должно быть pk, а каждая строка должна начинаться с целого числа:

for row in reader:
    if not header_row:
        header_row = row
        continue

    pk = row[0]
    model = model_name
    fields = {}
    for i in range(len(row)-1):
        active_field = row[i+1]

Итак, моя строка csv теперь выглядит так (включая строку заголовка):

pk, firm_url, firm_name, first, last, school, year_graduated
1, http://www.graychase.com/aabbas, Gray & Chase, Amr A, Babas, The George Washington University Law School, 2005

Является ли это требованием приспособления django или формата json? Если это так, мне нужно найти способ добавить числа pk в каждую строку. Могу ли я удалить этот столбец pk? Какие-либо предложения?

Редактировать 2

Я продолжаю получать эту ошибку ValidationError: «Это значение должно быть целым числом». Есть только одно целочисленное поле, и это pk. Есть ли способ узнать из трассировки, к чему относятся номера строк?

Problem installing fixture   'C:\Users\A\Documents\Projects\Django\sw2\wkw2\fixtures\csvtest1.csv.json': Traceback (most recent call last):

  File "C:\Python26\Lib\site-packages\django\core\management\commands\loaddata.py",  line 150, in handle
  for obj in objects:

  File "C:\Python26\lib\site-packages\django\core\serializers\json.py", line 41, in Deserializer
    for obj in PythonDeserializer(simplejson.load(stream)):

  File "C:\Python26\lib\site-packages\django\core\serializers\python.py", line 95, in Deserializer
    data[field.attname] = field.rel.to._meta.get_field(field.rel.field_name).to_python(field_value)

  File "C:\Python26\lib\site-packages\django\db\models\fields\__init__.py", line 356, in to_python
    _("This value must be an integer."))

ValidationError: This value must be an integer.
12.12.2009

  • Я думаю, что было бы лучше опубликовать отдельный вопрос вместо обновления этого, поскольку ваше обновление не является разъяснением исходного вопроса. 12.12.2009
  • Да, я как раз это и делал, спасибо: stackoverflow.com/questions/1894628/< /а> 12.12.2009

Ответы:


1

+ здесь используется неправильно, правильный способ объединить имя каталога и имя файла - использовать os.path.join(). Но нет необходимости объединять каталог, в котором находится скрипт, с именем файла, так как обычно передается относительный путь к текущему рабочему каталогу. Итак, измените строки 31-32 на следующие:

in_file = input_file_name
out_file = in_file + '.json'
12.12.2009

2

Вы должны использовать os.path.join, а не просто объединять dirname() и имена файлов.

import os.path
in_file = os.path.join(dirname(__file__), input_file_name)
out_file = os.path.join(dirname(__file__), input_file_name + ".json")

решит вашу проблему, хотя в зависимости от того, что именно вы делаете, возможно, есть более элегантный способ сделать это.

12.12.2009
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..