这可能是一个愚蠢的问题。我想在python中将dict从null替换为'null'。
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个此类数据的巨大文件,我无法手动执行。
请帮助。
答案 0 :(得分:0)
您可以尝试类似的方法。它将每个 null 替换为'null',并将其存储到新文件中。 将其存储到同一文件中或将其写入新文件,然后将其替换为原始文件由您决定。
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()
答案 1 :(得分:0)
您不需要更换任何东西。只需加载文件并将数据转换为字典即可。
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'}}
答案 2 :(得分:0)
import json
x = json.loads(mydict)
然后您的 dict 中的 null
将更改为 ""
。