Это может быть глупый вопрос. Я хотел бы заменить нуль на «нуль» в словаре на питоне.
mydict = {"headers": {"ai5": "8fa683e59c02c04cb781ac689686db07", "debug": null, "random": **null**, "sdkv": "7.6"}, "post": {"event": "ggstart", "ts": "1462759195259"}, "params": {}, "bottle": {"timestamp": "2016-05-09 02:00:00.004906", "game_id": "55107008"}}
Я не могу выполнить какую-либо строковую операцию в python, так как она выдает ошибку:
NameError: name 'null' is not defined
У меня есть огромный файл из 18000 данных такого типа, и я не могу сделать это вручную.
Пожалуйста помоги.
Эти значения хранятся в файле?? Потому что это объявление не будет работать в python. Можете ли вы рассказать подробности о формате, в котором у вас есть значения
Я не определяю. У меня есть текстовый файл, в котором 18000 строк, подобных этому. и мне нужно заменить все нули на 'null'
@AshishGhodake У меня есть txt-файл, в котором много строк, как показано ниже: {"headers": {"ai5": "8fa683e59c02c04cb781ac689686db07", "debug": null, "random": null, "sdkv": "7.6"}, "post": {"event": "ggstart", "ts": "1462759195259"}, "params": {}, "bottle": {"timestamp": "2016-05-09 02:00:00.004906" , "game_id": "55107008"}}, в котором мне нужно преобразовать все значения null в "null"
@GauravPhagre Это JSON: разобрать JSON как JSON (Python имеет встроенную поддержку парсинга JSON. .. нуль будет проанализирован как None, эквивалент Python, в результирующих проанализированных объектах). Вероятно, менее идеально пытаться скопировать и вставить JSON «как Python».
Поскольку вы разместили код для mydict = { ... } с этим JSON, похоже, вы пытались определить его как словарь. Как вы читаете данные из текстового файла?





Вы можете попробовать что-то вроде этого. Он заменяет каждый нулевой на 'нулевой' и сохраняет его в новый файл. Сохранять его в тот же файл или записывать в новый файл, а затем заменять его исходным — решать вам.
import re
f_handle = open("test.txt","r+")
f_2 = open("result.txt","w+")
for f_string in f_handle.readlines():
print(f_string)
f_result = re.sub(r'(?:^|\W)null(?:$|\W)',"'null'",f_string)
print(f_result)
f_2.write(f_result)
f_handle.close()
f_2.close()
Вам не нужно ничего заменять. Просто загрузите файл и преобразуйте данные в dict.
import json
import pprint
with open('x.json') as f:
data = json.load(f)
pprint.pprint(data)
Вход (x.json)
{
"headers": {
"ai5": "8fa683e59c02c04cb781ac689686db07",
"debug": null,
"random": null,
"sdkv": "7.6"
},
"post": {
"event": "ggstart",
"ts": "1462759195259"
},
"params": {},
"bottle": {
"timestamp": "2016-05-09 02:00:00.004906",
"game_id": "55107008"
}
}
Выход
{'bottle': {'game_id': '55107008', 'timestamp': '2016-05-09 02:00:00.004906'},
'headers': {'ai5': '8fa683e59c02c04cb781ac689686db07',
'debug': None,
'random': None,
'sdkv': '7.6'},
'params': {},
'post': {'event': 'ggstart', 'ts': '1462759195259'}}
import json
x = json.loads(mydict)
и тогда null в вашем словаре изменится на "".
Вы не можете определить
mydictкак словарь, потому что в Python нетnull(поэтому вы получаете синтаксическую ошибку ««нулевой» не определен»). Должно бытьNone. Возможно, вы получили этот данные в виде строки?