Python:从一个txt文件解析多个JSON对象

Python:从一个txt文件解析多个JSON对象,python,json,Python,Json,我在重新表述这里提出的问题 以及其他职位。但我对JSON还不熟悉,我不太清楚其中有多少函数可以工作,特别是为了满足我的目的。我正在使用numpy和pandas开发Python3,我很好奇是否有任何函数可以简化这一过程 我正在尝试保存来自GoogleMapsAPI的多个请求。该API返回一个JSON对象,一个字典,大约52行。我有一个很大的数据集,我希望得到大约5000个这样的JSON对象。我创建了一个函数,将所有json对象写入一个txt文件。我在每个json对象之间有一个换行符。这是代码。。。

我在重新表述这里提出的问题

以及其他职位。但我对JSON还不熟悉,我不太清楚其中有多少函数可以工作,特别是为了满足我的目的。我正在使用numpy和pandas开发Python3,我很好奇是否有任何函数可以简化这一过程

我正在尝试保存来自GoogleMapsAPI的多个请求。该API返回一个JSON对象,一个字典,大约52行。我有一个很大的数据集,我希望得到大约5000个这样的JSON对象。我创建了一个函数,将所有json对象写入一个txt文件。我在每个json对象之间有一个换行符。这是代码。。。所有这些都在一个循环中,不断向谷歌地图api发出请求

    r = requests.get(url, params=payload) # request
    json_var = r.json()
    json_var['tweet_id'] = rows['tweet_id']
    json_var['manual_location'] = manual_loc
    if small==True:
        print("writing")
        with open("txt_files/small_geo_json.txt", 'a') as myfile:
            myfile.write(json.dumps(json_var, indent=4))
            myfile.write("\n")
我从解决方案中借用了代码,希望能正确解释它。我认为“n”应该是json对象占用的行数,但是

def lines_per_n(f, n):
  for line in f:
    yield ''.join(chain([line], itertools.islice(f, n - 1)))

def extract_cords_from_json(small=False):
  if small == True:
    data =[]
    with open("txt_files/small_geo_json.txt") as infile:
        for chunk in lines_per_n(infile, 52):
            print(chunk)
            jfile = json.loads(chunk)
下面是requests.get()调用中的json对象示例:

相当长。但是,运行我发布的函数的代码结果。。。 这并不像预期的那样有效。它产生的输出(我通过打印
chunk
变量发现了这一点)实际上有105行(我的意思是,52*2=104,差不多)。105输出实际上没有两个完整条目。一个json对象的前52行,然后是一个空行,然后是另一个json对象的前29行

我得到的错误是:
json.decoder.JSONDecodeError:应使用双引号括起属性名:
第53行第1列(字符1598)

我还尝试使用并复制/粘贴了我的文本文件。它给出了以下错误,但我不知道它是什么意思

 Error: Parse error on line 48:
 ...: "United States"} {    "results": [{       "
 ----------------------^
 Expecting 'EOF', '}', ',', ']', got '{'

您真的需要将一堆单独的JSON对象写入一个文件吗?为什么不只编写一个JSON对象,它是一个包含所有子对象的列表?是的,我不需要将它们全部保存到不同的JSON对象。我在谷歌搜索“python中的JSON数组”,但什么也没找到,所以我放弃了这样做的想法。所以我可以创建一个列表对象,将每个json对象附加到其中,然后保存它?您当然可以这样做。JSON中最外层的容器通常是一个对象,当加载到Python中时,它将成为一个dict,但是将最外层的容器作为列表是完全合法的。您可以在Python文件中将这些JSON另存为dict,我想事情会简单得多。如果您有任何唯一的id或键,请将其设置为dict key:save in this format
dict={“unique_key”:{“Extracted dict/JSON goes here”},以同样的方式在此处追加另一行}
@Rajan Sure,如果每个子对象都有一个唯一的键,那么将它们全部保存到dict中是有意义的。但是如果没有或需要这样的键,那么列表是完全可以的。
 Error: Parse error on line 48:
 ...: "United States"} {    "results": [{       "
 ----------------------^
 Expecting 'EOF', '}', ',', ']', got '{'