首页 > 解决方案 > 从 JSONS 列表中提取数据的问题

问题描述

我想使用 python 评估 json 数据。但是,我收到错误消息:字符串索引必须是整数

我已经使用以下代码对其进行了测试,但它不起作用。我以前用elasticsearch试过,但我的编程不太好,所以我决定用自制解决方案试试

(抱歉格式不好,我是stackoverflow的新手)

```
import requests, json, os
from elasticsearch import Elasticsearch

directory = "C:\\Users\\Felix Bildstein\\Desktop\\Test1"         
Dateien = os.listdir(directory)                                    
index_len = len(Dateien) - 2                                       
n = 1


# Create your dictionary class 
class my_dictionary(dict): 

    # __init__ function 
    def __init__(self): 
        self = dict() 

    # Function to add key:value 
    def add(self, key, value): 
        self[key] = value 

# Main Function 
dict_obj = my_dictionary() 

dict_obj.add(1, 'Geeks') 

while n <= index_len:                              
    try:

        a, *Dateien = Dateien                       
        n += 1
        f = open(a, "r")                            
        file_contents = (f.read())                 
        f.close                 
        dict_obj.add(n, file_contents)                      
    finally:
        print(n)                                    
        print(file_contents['unitPrice'])


output = dict_obj

print(output)                                       

with open('result.json', 'w') as fp:               
    json.dump(output, fp)

f = open("dict.txt","w")                            
f.write( str(dict_obj) )
f.close()

```

它应该花费适当的价值

这是我的测试 Json

{
  "merchantOrderId": "302-08423880-89823764",
  "creationTime": {
    "usecSinceEpochUtc": "15555040944000000",
    "granularity": "MICROSECOND"
  },
  "transactionMerchant": {
    "name": "Amazon.de"
  },
  "lineItem": [{
    "purchase": {
      "status": "ACCEPTED",
      "unitPrice": {
        "amountMicros": "4690000",
        "currencyCode": {
          "code": "EUR"
        },
        "displayString": "EUR 4,20"
      },
      "returnsInfo": {
        "isReturnable": true,
        "daysToReturn": 30
      },
      "fulfillment": {
        "location": {
          "address": [""]
        },
        "timeWindow": {
          "startTime": {
            "usecSinceEpochUtc": "155615040000000",
            "granularity": "DAY"
          },
          "endTime": {
            "usecSinceEpochUtc": "155615040000000",
            "granularity": "DAY"
          }
        }
      },
      "landingPageUrl": {
        "link": "https://www.amazon.de/gp/r.html?C\u003d3ILR4VQSVD3HI\u0026K\u0026M\u003durn:rtn:msg:20190417124222996c5bb6751e45b5ba12aff8d350p0eu\u0026R\u003d2FEGGCJMDBAOF\u0026T\u003dC\u0026U\u003dhttps%3A%2F%2Fwww.amazon.de%2Fdp%2FB001J8I7VG%2Fref%3Dpe_3044161_185740101_TE_item\u0026H\u003d6EXBPJA679MVNLICLRRO4K1XPFCA\u0026ref_\u003dpe_3044161_185740101_TE_item"
      },
      "productInfo": {
        "name": "tesa Powerstrips Bildernagel, selbstklebend, weiß, 2 Stück"
      }
    },
    "name": "tesa Powerstrips Bildernagel, selbstklebend, weiß, 2 Stück"
  }],
  "priceline": [{
    "type": "SUBTOTAL",
    "amount": {
      "amountMicros": "4690000",
      "currencyCode": {
        "code": "EUR"
      }
    }
  }, {
    "type": "DELIVERY",
    "amount": {
      "amountMicros": "0",
      "currencyCode": {
        "code": "EUR"
      },
      "displayString": "EUR 0,00"
    }
  }]
}

标签: pythonjsonsearch

解决方案


推荐阅读