Как напечатать значение словаря из файла, используя python - PullRequest
1 голос
/ 08 июля 2019

У меня есть словарь в файле и выводим имя из файла

di = {'elk': [{'url_1': 'localhost:8080/api/running',
                                 'url_2': 'localhost:8080/api/',
                                 'name': 'cat',
                                 'method': 'GET'}],
 'a': [{'url_1': 'localhost:8080/api/running',
                              'url_2': 'localhost:8080/api/',
                              'name': 'mouse',
                              'method': 'GET'}]}

# Чтение файла

import os
with open('g.txt','r') as fh:
    fh_n = fh.read()

# Сохранение в списке

test = []
for k,v in di.items():
    test.append(v[0]['name'])
test

['cat', 'mouse']

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Вы можете использовать json, чтобы получить свой результат: -

di = {'elk': [{'url_1': 'localhost:8080/api/running',
                             'url_2': 'localhost:8080/api/',
                             'name': 'cat',
                             'method': 'GET'}],
             'a': [{'url_1': 'localhost:8080/api/running',
                          'url_2': 'localhost:8080/api/',
                          'name': 'mouse',
                          'method': 'GET'}]}
import json
file = open('g.json', 'w')
json.dump(di, file)  # Saving di into g.json file
file.close()

file_open = open('g.json', 'r+')
my_di = json.load(file_open)  # Loading the saved g.json file
file_open.close()

print(type(di))
print(di)

Я надеюсь, что это может помочь вам.

1 голос
/ 08 июля 2019
import ast

with open('g.txt','r') as fh:
    fh_n = fh.read()

#first split string and convert into dictionary
data = ast.literal_eval(fh_n.split("=")[1].strip())

#or
#di = remove from text file
#ast.literal_eval(fh_n)

name = [i[0]['name'] for i in data.values()]
print(name)

O / P:

['cat', 'mouse']

ИЛИ

преобразовать данные текстового файла в файл json g.json файл

[{
  "di": {
    "elk": [
      {
        "url_1": "localhost:8080/api/running",
        "url_2": "localhost:8080/api/",
        "name": "cat",
        "method": "GET"
      }
    ],
    "a": [
      {
        "url_1": "localhost:8080/api/running",
        "url_2": "localhost:8080/api/",
        "name": "mouse",
        "method": "GET"
      }
    ]
  }
}
]

.py file

import json

with open('g.json') as fh:
   data = json.load(fh)

name = [i[0]['name'] for i in data[0]['di'].values()]
print(name)

O / P:

['cat', 'mouse']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...