Извлечение JSON значений с использованием Python - PullRequest
0 голосов
/ 25 января 2020

В настоящее время у меня запущен скрипт для чтения текстового файла JSON, и я хочу вывести значения в указанном формате c.

Мой вывод в firebase выглядит следующим образом:

Value:
 0: "{'status': 'success'"
 1: " 'country': 'Malaysia'"
 2: " 'countryCode': 'MY'"
 3: " 'region': '10'"
 4: " 'regionName': 'Selangor'"
 5: " 'city': 'Kajang'"
 6: " 'zip': '43007'"
 7: " 'lat': 2.9927"
 8: " 'lon': 101.7909"
 9: " 'timezone': 'Asia/Kuala_Lumpur'"
 10: " 'isp': 'Tmnet"
 11: " Telekom Malaysia Bhd.'"
 12: " 'org': 'Adsl Streamyx'"
 13: " 'as': 'AS4788 Tmnet"
 14: " Telekom Malaysia Bhd.'"
 15: " 'query': '175.136.0.3'}"

Я просто хочу, чтобы это было так (без двойных кавычек и скобок)

Value:
 0: status: success
 1: country: Malaysia
 2: countryCode: MY
 3: region: 10
 4: regionName: Selangor
 5: city: Kajang
 6: zip: 43007
 7: lat: 2.9927
 8: lon: 101.7909
 9: timezone: Asia/Kuala_Lumpur
 10: isp: Tmnet Telekom Malaysia Bhd.
 11: org: Adsl Streamyx
 12: as: AS4788 Tmnet
 13: Telekom Malaysia Bhd.
 14: query: 75.136.0.3

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Ну, извините, но ваш код ужасен.

Обратите внимание на следующие моменты:

1) Почему вы используете бесконечность l oop и снова и снова чтение из файла?

2) Вы в основном полагаетесь на то, что conn.post () сгенерирует исключение, и после этого ваш скрипт закроется. Какие интерны никогда не будут выходить (0) выходить из программы.

Теперь перейдем к решению:

Поскольку вы уже читаете JSON как словарь здесь json.load(f), тогда почему надо разделить строку и установить значение?

Просто переберите словарь, прочитайте key и value. Соответственно, отправьте все, что вы хотите отправить на базу огня. Это будет автоматически без двойных кавычек и скобок.

Я пишу алгоритм ниже, и я хотел бы, чтобы вы написали код самостоятельно:

  • Чтение JSON из файла .
  • преобразовать это JSON в словарь в python.
  • Выполнить итерацию по словарю и соответственно отправить данные.
  • закрыть соединение с файлом.
  • закрыть соединение с пожарной базой.
0 голосов
/ 25 января 2020

по моему опыту, python и json никогда не смешиваются хорошо ... Если вы хотите дешевое решение этой проблемы, используйте replace() и вставьте в него все символы, которые вам не нужны. Примерно так:

from firebase import firebase
import json
import time
conn=firebase.FirebaseApplication('myURL', None)

while True:
    with open('ipinfotest.txt') as f:
        for obj in json.load(f):
            c=f"{obj['values']}"
            d=c.split(",")
            data_2={
                "Value": d.replace("'","").replace("{","").replace("}","")
            }
            print(data_2)
            result=conn.post('IpInfo',data_2)
    f.close()

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

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