【发布时间】:2021-08-26 08:45:10
【问题描述】:
我有一个具有 JSON 结构的文本文件,我想将其转换为数据框。
JSON 文件包括几个这样的 JSON 字符串:
{'cap': {'english': 0.1000, 'universal': 0.225}, 'display_scores': {'english': {'astroturf': 0.5, 'fake_follower': 0.8, 'financial': 0.2, '其他':1.8,'整体':1.8,'self_declared':0.0,'垃圾邮件发送者':0.2},'通用':{'astroturf':0.4,'fake_follower':0.2,'财务':0.2,'其他': 0.4, 'overall': 0.8, 'self_declared': 0.0, 'spammer': 0.0}}, 'raw_scores': {'english': {'astroturf': 0.1, 'fake_follower': 0.16, 'financial': 0.05,“其他”:0.35,“整体”:0.35,“self_declared”:0.0,“垃圾邮件发送者”:0.04},“通用”:{“astroturf”:0.07,“fake_follower”:0.03,“财务”:0.05, '其他':0.09,'整体':0.16,'self_declared':0.0,'垃圾邮件发送者':0.01}},'用户':{'majority_lang':'de','user_data':{'id_str':'123456 ', 'screen_name': 'beispiel01'}}}
tweets_data_path = "data.txt"
tweets_data = []
tweets_file = open(tweets_data_path, "r")
for line in tweets_file:
try:
tweet = json.loads(line)
tweets_data.append(tweet)
except:
continue
tweets_data
df = pd.DataFrame.from_dict(pd.json_normalize(tweets_data), orient='columns')
df
但是,显然 json.loads 或 append 命令有问题,因为当我调用它时, tweets_data 是空的。
你有什么想法吗?
【问题讨论】:
-
每一行都是文本文件中的有效 JSON 对象吗?您应该在
except子句中打印异常,而不是简单的continue语句。您的代码在解码 JSON 时可能会抛出错误,并且您不会知道,因为您没有跟踪异常。 -
df = pd.read_json('data.txt')应该很容易做到吗?
标签: python json python-3.x python-jsonschema python-jsons