Преобразовать словарь Python в JSON объект без строкового ключа - PullRequest
0 голосов
/ 30 марта 2020

Я создал ядро ​​ kaggle Notebook - Пожалуйста, проверьте его - со странами мира источника данных, чтобы получить список JSON объектов, которые обрабатывают каждую страну и соответствующее население, потому что я хочу использовать текстовую копию этого в JavaScript.

Я использовал следующий код:

data = []

import csv
import json
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        file_name = os.path.join(dirname, filename)
        print(file_name)
        print('Done!')

# Any results you write to the current directory are saved as output.
# LOOK AT THE FOLLOWING Method:
def load_tokens(tokens_file):
    try:
        with open(tokens_file) as csvDataFile:
            csvReader = csv.reader(csvDataFile)

            for i,row in enumerate(csvReader):

                data.insert(i,json.loads(json.dumps({'country':row[0].strip(), 'population':row[2].strip()})))

Активный код здесь - load_tokens() метод , На этом я закончил вывод print(data), например:

[{'country': 'Country', 'population': 'Population'}, {'country': 'Afghanistan', 'population': '31056997'}, {'country': 'Albania', 'population': '3581655'}, {'country': 'Algeria', 'population': '32930091'},...]

Моя проблема здесь - словарные ключи. то есть 'country' и 'population' Я не хочу, чтобы они были строками. Мне нужно, чтобы они были JSON ключами объекта, как в JavaScript:

[{country: 'Country', population: 'Population'},{country: 'Afghanistan', population: '31056997'},...

1 Ответ

1 голос
/ 30 марта 2020

Хорошо отформатированный JSON должен использовать строки в качестве ключей, например: {"country": "Country"}

Тот факт, что вы можете объявлять объекты, используя {country: "Country"} в js это просто ярлык для удобства. Объявление с кавычками работает так же, а иногда и лучше (ваш ключ может использовать +/- и другие символы).

Не преобразовывать из JSON обратно в python объекты (используя json .loads ()), хоть. Python объекты не являются JSON объектами, и даже в том, как они отображаются, есть тонкие различия.

...