我需要从JSON格式的文件中获取数据(属性名和值)。我可以从文件中获取所需的字符串列表。即,这总是有效的:
f = open("f.txt", "r")
data = json.load(f);
f.close()
get = data["payload"]["blob"]["rawLines"]
字符串
所以当我打印"get"时,我会看到这样的东西(如下所示),其中包含了我需要的所有值和属性名称:
get [' name property1 ', ' 98.00000 property2 ', ' 3.00000 property3 ', ' 500.66300 property4 ', ' -50000.9999 property5 ', ' 100.45200 property6 ', ' 59.75258 property7 ', ' 9.66543 property8 ', ' 0.00000 property9 ', ' 100.07655 property10 ', ' 0.00000 property11 ', ' 0.00000 property12 ', ' 0.00000 property13 ', ' 0.00000 property14 ', ' 8.88888 property15 ', ' 1.00000 property16 ', ' 0.00000 property17 ...
型
然而,当我通过一个条和分裂做一个dict时:
mydict = dict(line.strip().split(None, 1) for line in get)
型
缺少某些属性名称-值对。例如,始终缺少property16及其值。
我不能发布数据,但我希望有人可能知道一个更强大的方法来处理带和分裂步骤。今天我一直在看以前的职位(如this之一),但还没有得到很远。
@Tim Roberts的解决方案解决了根本问题。通过使用
mydict = dict(reversed(line.split(None, 1)) for line in get)
型
我得到了以前缺少的所有属性名称-值对。
有一个小问题。逗号仍然存在。所以当我把dict变成一个括号时,
mydataframe = pd.DataFrame(mydict.items(), columns=["name", "value"])
型
我得到
name value
0 Methane CH4
1 Thing2word1 Thing2word2 ... 25.07700
2 Thing3word3 Thing3word3 ... 11.33000
...
型
有没有办法去掉逗号,这样就只有两列,属性名和值?谢谢。
1条答案
按热度按时间y3bcpkx11#
如果你做了默认的拆分,你不需要“strip”。我怀疑你想要的是反转键和值,像这样:
字符串
输出量:
型