Считать данные из текстового файла в словарь - PullRequest
0 голосов
/ 25 апреля 2018

с использованием Python, я импортирую данные из текстового файла с примерами данных ниже:

ABB : {'Code': 'adr', 'Volume': 2238117, 'Sector': 'Industrials', 'Market_Cap': 'No Data', 'Industry': 'Industrial Products', 'List_Date': '2001-04-06'},
ABEV : {'Code': 'adr', 'Volume': 19348239, 'Sector': 'Consumer Defensive', 'Market_Cap': 'No Data', 'Industry': 'Beverages - Alcoholic', 'List_Date': '2013-11-11'},

Я импортирую его в словарь со следующим фрагментом:

with open('list_all.csv', mode='r') as infile:
    reader = csv.reader(infile)
    result = {}
    for row in reader:
        key = row[0]
        result[key] = row[1:]

он импортируется как словарь, но проблема в том, что КЛЮЧ не в "", например "ABB" или "ABEV". как только я импортирую его, мой dic выглядит следующим образом:

"ABB : {'Code': 'adr'": [" 'Volume': 2238117",
  " 'Sector': 'Industrials'",
  " 'Market_Cap': 'No Data'",
  " 'Industry': 'Industrial Products'",
  " 'List_Date': '2001-04-06'}",
  ''],

Как лучше всего решить эту проблему

1 Ответ

0 голосов
/ 25 апреля 2018

Похоже, вы можете читать построчно, удалять запятые и разбивать на части : и ast.literal_eval dict, например:

import ast

with open('yourfile') as fin:
    rows = (line.rstrip('\n,').partition(' : ') for line in fin)
    data = {r[0]: ast.literal_eval(r[2]) for r in rows}

которые дают вам data из:

{'ABB': {'Code': 'adr',
  'Volume': 2238117,
  'Sector': 'Industrials',
  'Market_Cap': 'No Data',
  'Industry': 'Industrial Products',
  'List_Date': '2001-04-06'},
 'ABEV': {'Code': 'adr',
  'Volume': 19348239,
  'Sector': 'Consumer Defensive',
  'Market_Cap': 'No Data',
  'Industry': 'Beverages - Alcoholic',
  'List_Date': '2013-11-11'}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...